/***********************************************
* Ajax Page Fetcher- by JavaScript Kit (www.javascriptkit.com)
***********************************************/

var ajaxpagefetcher={
loadingmessage: "<img src=ajax/wait18.gif>",
exfilesadded: "",

connect:function(containerid, pageurl, variables, bustcache, jsfiles, cssfiles){
	var page_request = false
	var bustcacheparameter=""
	if (window.XMLHttpRequest) // if Mozilla, IE7, Safari etc
		page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE6 or below
		try {
		page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e){
			try{
			page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
		}
	}
	else
		return false
	var ajaxfriendlyurl=pageurl.replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+"/") 
	page_request.onreadystatechange=function(){ajaxpagefetcher.loadpage(page_request, containerid, pageurl, jsfiles, cssfiles)}
	if (bustcache) //if bust caching of external page
		bustcacheparameter=(ajaxfriendlyurl.indexOf("")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
	document.getElementById(containerid).innerHTML=ajaxpagefetcher.loadingmessage //Display "fetching page message"
	page_request.open('GET', ajaxfriendlyurl+"?"+variables+bustcacheparameter, true)
	page_request.send(null)
},

loadpage:function(page_request, containerid, pageurl, jsfiles, cssfiles){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
		document.getElementById(containerid).innerHTML=page_request.responseText
		for (var i=0; i<jsfiles.length; i++)
			this.loadjscssfile(jsfiles[i], "js")
		for (var i=0; i<cssfiles.length; i++)
			this.loadjscssfile(cssfiles[i], "css")
		this.pageloadaction(pageurl) //invoke custom "onpageload" event
	}
},

createjscssfile:function(filename, filetype){
	if (filetype=="js"){ //if filename is a external JavaScript file
		var fileref=document.createElement('script')
		fileref.setAttribute("type","text/javascript")
		fileref.setAttribute("src", filename)
	}
	else if (filetype=="css"){ //if filename is an external CSS file
		var fileref=document.createElement("link")
		fileref.setAttribute("rel", "stylesheet")
		fileref.setAttribute("type", "text/css")
		fileref.setAttribute("href", filename)
	}
	return fileref
},

loadjscssfile:function(filename, filetype){ //load or replace (if already exists) external .js and .css files
	if (this.exfilesadded.indexOf("["+filename+"]")==-1){ //if desired file to load hasnt already been loaded
		var newelement=this.createjscssfile(filename, filetype)
		document.getElementsByTagName("head")[0].appendChild(newelement)
		this.exfilesadded+="["+filename+"]" //remember this file as being added
	}
	else{ //if file has been loaded already (replace/ refresh it)
 	var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist using
 	var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for
 	var allsuspects=document.getElementsByTagName(targetelement)
 	for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
  	if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1){
   	var newelement=this.createjscssfile(filename, filetype)
   	allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i])
  	}
		}
 }
},

loadalles:function(pageurl){
this.load('lista0', 'ajax/sp_byfamily.php', 'family=Podicipedidae&la=es&family_n=Tigua y Zaramago&f=0')
this.load('lista1', 'ajax/sp_byfamily.php', 'family=Procellariidae&la=es&family_n=Pamperos y Petreles&f=1')
this.load('lista2', 'ajax/sp_byfamily.php', 'family=Hydrobatidae&la=es&family_n=Paíños&f=2')
this.load('lista3', 'ajax/sp_byfamily.php', 'family=Phaethontidae&la=es&family_n=Chirres&f=3')
this.load('lista4', 'ajax/sp_byfamily.php', 'family=Sulidae&la=es&family_n=Bobas&f=4')
this.load('lista5', 'ajax/sp_byfamily.php', 'family=Pelecanidae&la=es&family_n=Pelícanos&f=5')
this.load('lista6', 'ajax/sp_byfamily.php', 'family=Phalacrocoracidae&la=es&family_n=Cormoránes&f=6')
this.load('lista7', 'ajax/sp_byfamily.php', 'family=Fregatidae&la=es&family_n=Tijereta&f=7')
this.load('lista8', 'ajax/sp_byfamily.php', 'family=Ardeidae&la=es&family_n=Yaboas y Garzas&f=8')
this.load('lista9', 'ajax/sp_byfamily.php', 'family=Threskiornithidae&la=es&family_n=Ibises&f=9')
this.load('lista10', 'ajax/sp_byfamily.php', 'family=Phoenicopteridae&la=es&family_n=Flamenco&f=10')
this.load('lista11', 'ajax/sp_byfamily.php', 'family=Anatidae&la=es&family_n=Patos&f=11')
this.load('lista12', 'ajax/sp_byfamily.php', 'family=Cathartidae&la=es&family_n=Buitres&f=12')
this.load('lista13', 'ajax/sp_byfamily.php', 'family=Accipitridae&la=es&family_n=Águilas&f=13')
this.load('lista14', 'ajax/sp_byfamily.php', 'family=Falconidae&la=es&family_n=Halcones&f=14')
this.load('lista15', 'ajax/sp_byfamily.php', 'family=Phasianidae&la=es&family_n=Gallinas&f=15')
this.load('lista16', 'ajax/sp_byfamily.php', 'family=Rallidae&la=es&family_n=Pollos y Gallinazos&f=16')
this.load('lista17', 'ajax/sp_byfamily.php', 'family=Aramidae&la=es&family_n=Carrao&f=17')
this.load('lista18', 'ajax/sp_byfamily.php', 'family=Charadriidae&la=es&family_n=Chorlitos&f=18')
this.load('lista19', 'ajax/sp_byfamily.php', 'family=Haematopodidae&la=es&family_n=Ostrero&f=19')
this.load('lista20', 'ajax/sp_byfamily.php', 'family=Recurvirostridae&la=es&family_n=Viudas&f=20')
this.load('lista21', 'ajax/sp_byfamily.php', 'family=Jacanidae&la=es&family_n=Jacanas&f=21')
this.load('lista22', 'ajax/sp_byfamily.php', 'family=Scolopacidae&la=es&family_n=Playeros&f=22')
this.load('lista23', 'ajax/sp_byfamily.php', 'family=Laridae&la=es&family_n=Gaviotas y Charranes&f=23')
this.load('lista24', 'ajax/sp_byfamily.php', 'family=Stercorariidae&la=es&family_n=Págalos&f=24')
this.load('lista25', 'ajax/sp_byfamily.php', 'family=Columbidae&la=es&family_n=Palomas y Tórtolas&f=25')
this.load('lista26', 'ajax/sp_byfamily.php', 'family=Psittacidae&la=es&family_n=Cotorras y Pericos&f=26')
this.load('lista27', 'ajax/sp_byfamily.php', 'family=Cuculidae&la=es&family_n=Pájaros Bobos&f=27')
this.load('lista28', 'ajax/sp_byfamily.php', 'family=Tytonidae&la=es&family_n=Lechuzas&f=28')
this.load('lista29', 'ajax/sp_byfamily.php', 'family=Strigidae&la=es&family_n=Múcaros&f=29')
this.load('lista30', 'ajax/sp_byfamily.php', 'family=Caprimulgidae&la=es&family_n=Querequequés y Guabairos&f=30')
this.load('lista31', 'ajax/sp_byfamily.php', 'family=Nyctibiidae&la=es&family_n=Nictibios&f=31')
this.load('lista32', 'ajax/sp_byfamily.php', 'family=Apodidae&la=es&family_n=Vencejos&f=32')
this.load('lista33', 'ajax/sp_byfamily.php', 'family=Trochilidae&la=es&family_n=Zumbadores&f=33')
this.load('lista34', 'ajax/sp_byfamily.php', 'family=Todidae&la=es&family_n=San Pedrito&f=34')
this.load('lista35', 'ajax/sp_byfamily.php', 'family=Alcedinidae&la=es&family_n=Martín Pescador&f=35')
this.load('lista36', 'ajax/sp_byfamily.php', 'family=Picidae&la=es&family_n=Carpinteros&f=36')
this.load('lista37', 'ajax/sp_byfamily.php', 'family=Tyrannidae&la=es&family_n=Pitirres y Juís&f=37')
this.load('lista38', 'ajax/sp_byfamily.php', 'family=Hirundinidae&la=es&family_n=Golondrinas&f=38')
this.load('lista39', 'ajax/sp_byfamily.php', 'family=Corvidae&la=es&family_n=Cuervos&f=39')
this.load('lista40', 'ajax/sp_byfamily.php', 'family=Muscicapidae&la=es&family_n=Collalba&f=40')
this.load('lista41', 'ajax/sp_byfamily.php', 'family=Turdidae&la=es&family_n=Zorzales&f=41')
this.load('lista42', 'ajax/sp_byfamily.php', 'family=Mimidae&la=es&family_n=Ruiseñor y Zorzal Pardo&f=42')
this.load('lista43', 'ajax/sp_byfamily.php', 'family=Bombycillidae&la=es&family_n=Ampelis&f=43')
this.load('lista44', 'ajax/sp_byfamily.php', 'family=Parulidae&la=es&family_n=Reinitas&f=44')
this.load('lista45', 'ajax/sp_byfamily.php', 'family=Coerebidae&la=es&family_n=Reinita Común&f=45')
this.load('lista46', 'ajax/sp_byfamily.php', 'family=Sturnidae&la=es&family_n=Estornino&f=46')
this.load('lista47', 'ajax/sp_byfamily.php', 'family=Vireonidae&la=es&family_n=Vireos&f=47')
this.load('lista48', 'ajax/sp_byfamily.php', 'family=Thraupidae&la=es&family_n=Llorosa y Reina Mora&f=48')
this.load('lista49', 'ajax/sp_byfamily.php', 'family=Emberizidae&la=es&family_n=Gorriones&f=49')
this.load('lista50', 'ajax/sp_byfamily.php', 'family=Cardinalidae&la=es&family_n=Sabanero y Picogrueso Pechirrosado&f=50')
this.load('lista51', 'ajax/sp_byfamily.php', 'family=Icteridae&la=es&family_n=Calandria y Tordos&f=51')
this.load('lista52', 'ajax/sp_byfamily.php', 'family=Fringillidae&la=es&family_n=Cardenalito y Jilguero&f=52')
this.load('lista53', 'ajax/sp_byfamily.php', 'family=Passeridae&la=es&family_n=Gorrión Doméstico&f=53')
this.load('lista54', 'ajax/sp_byfamily.php', 'family=Ploceidae&la=es&family_n=Obispos&f=54')
this.load('lista55', 'ajax/sp_byfamily.php', 'family=Estrildidae&la=es&family_n=Veterano y otros Gorriones&f=55') 
this.load('alloption', 'ajax/hideall.php', 'la=es') 
},

loadallen:function(pageurl){
this.load('lista0', 'ajax/sp_byfamily.php', 'family=Podicipedidae&la=en&family_n=Grebes&f=0')
this.load('lista1', 'ajax/sp_byfamily.php', 'family=Procellariidae&la=en&family_n=Petrels and Shearwaters&f=1')
this.load('lista2', 'ajax/sp_byfamily.php', 'family=Hydrobatidae&la=en&family_n=Storm-Petrels&f=2')
this.load('lista3', 'ajax/sp_byfamily.php', 'family=Phaethontidae&la=en&family_n=Tropicbirds&f=3')
this.load('lista4', 'ajax/sp_byfamily.php', 'family=Sulidae&la=en&family_n=Boobies&f=4')
this.load('lista5', 'ajax/sp_byfamily.php', 'family=Pelecanidae&la=en&family_n=Pelicans&f=5')
this.load('lista6', 'ajax/sp_byfamily.php', 'family=Phalacrocoracidae&la=en&family_n=Cormorants&f=6')
this.load('lista7', 'ajax/sp_byfamily.php', 'family=Fregatidae&la=en&family_n=Frigatebird&f=7')
this.load('lista8', 'ajax/sp_byfamily.php', 'family=Ardeidae&la=en&family_n=Herons and Egrets&f=8')
this.load('lista9', 'ajax/sp_byfamily.php', 'family=Threskiornithidae&la=en&family_n=Ibis&f=9')
this.load('lista10', 'ajax/sp_byfamily.php', 'family=Phoenicopteridae&la=en&family_n=Flamingo&f=10')
this.load('lista11', 'ajax/sp_byfamily.php', 'family=Anatidae&la=en&family_n=Ducks&f=11')
this.load('lista12', 'ajax/sp_byfamily.php', 'family=Cathartidae&la=en&family_n=Vultures&f=12')
this.load('lista13', 'ajax/sp_byfamily.php', 'family=Accipitridae&la=en&family_n=Hawks&f=13')
this.load('lista14', 'ajax/sp_byfamily.php', 'family=Falconidae&la=en&family_n=Falcons&f=14')
this.load('lista15', 'ajax/sp_byfamily.php', 'family=Phasianidae&la=en&family_n=Chicken&f=15')
this.load('lista16', 'ajax/sp_byfamily.php', 'family=Rallidae&la=en&family_n=Rails and Coots&f=16')
this.load('lista17', 'ajax/sp_byfamily.php', 'family=Aramidae&la=en&family_n=Limpkin&f=17')
this.load('lista18', 'ajax/sp_byfamily.php', 'family=Charadriidae&la=en&family_n=Plovers&f=18')
this.load('lista19', 'ajax/sp_byfamily.php', 'family=Haematopodidae&la=en&family_n=Oystercatcher&f=19')
this.load('lista20', 'ajax/sp_byfamily.php', 'family=Recurvirostridae&la=en&family_n=Stilts&f=20')
this.load('lista21', 'ajax/sp_byfamily.php', 'family=Jacanidae&la=en&family_n=Jacanas&f=21')
this.load('lista22', 'ajax/sp_byfamily.php', 'family=Scolopacidae&la=en&family_n=Sandpiper&f=22')
this.load('lista23', 'ajax/sp_byfamily.php', 'family=Laridae&la=en&family_n=Gulls and Terns&f=23')
this.load('lista24', 'ajax/sp_byfamily.php', 'family=Stercorariidae&la=en&family_n=Jaegers&f=24')
this.load('lista25', 'ajax/sp_byfamily.php', 'family=Columbidae&la=en&family_n=Pigeons and Doves&f=25')
this.load('lista26', 'ajax/sp_byfamily.php', 'family=Psittacidae&la=en&family_n=Parrots and Parakeets&f=26')
this.load('lista27', 'ajax/sp_byfamily.php', 'family=Cuculidae&la=en&family_n=Cuckoos&f=27')
this.load('lista28', 'ajax/sp_byfamily.php', 'family=Tytonidae&la=en&family_n=Barn Owls&f=28')
this.load('lista29', 'ajax/sp_byfamily.php', 'family=Strigidae&la=en&family_n=Owls&f=29')
this.load('lista30', 'ajax/sp_byfamily.php', 'family=Caprimulgidae&la=en&family_n=Nighthawks and Nightjars&f=30')
this.load('lista31', 'ajax/sp_byfamily.php', 'family=Nyctibiidae&la=en&family_n=Potoos&f=31')
this.load('lista32', 'ajax/sp_byfamily.php', 'family=Apodidae&la=en&family_n=Swifts&f=32')
this.load('lista33', 'ajax/sp_byfamily.php', 'family=Trochilidae&la=en&family_n=Hummingbirds&f=33')
this.load('lista34', 'ajax/sp_byfamily.php', 'family=Todidae&la=en&family_n=Todies&f=34')
this.load('lista35', 'ajax/sp_byfamily.php', 'family=Alcedinidae&la=en&family_n=Kingfishers&f=35')
this.load('lista36', 'ajax/sp_byfamily.php', 'family=Picidae&la=en&family_n=Woodpeckers&f=36')
this.load('lista37', 'ajax/sp_byfamily.php', 'family=Tyrannidae&la=en&family_n=Kingbirds and Flycatchers&f=37')
this.load('lista38', 'ajax/sp_byfamily.php', 'family=Hirundinidae&la=en&family_n=Swallows&f=38')
this.load('lista39', 'ajax/sp_byfamily.php', 'family=Corvidae&la=en&family_n=Crows&f=39')
this.load('lista40', 'ajax/sp_byfamily.php', 'family=Muscicapidae&la=en&family_n=Wheatear&f=40')
this.load('lista41', 'ajax/sp_byfamily.php', 'family=Turdidae&la=en&family_n=Thrushs&f=41')
this.load('lista42', 'ajax/sp_byfamily.php', 'family=Mimidae&la=en&family_n=Mockingbird and Pearly-eyed Thrasher&f=42')
this.load('lista43', 'ajax/sp_byfamily.php', 'family=Bombycillidae&la=en&family_n=Waxwing&f=43')
this.load('lista44', 'ajax/sp_byfamily.php', 'family=Parulidae&la=en&family_n=Warblers&f=44')
this.load('lista45', 'ajax/sp_byfamily.php', 'family=Coerebidae&la=en&family_n=Bananaquit&f=45')
this.load('lista46', 'ajax/sp_byfamily.php', 'family=Sturnidae&la=en&family_n=Starlings&f=46')
this.load('lista47', 'ajax/sp_byfamily.php', 'family=Vireonidae&la=en&family_n=Vireos&f=47')
this.load('lista48', 'ajax/sp_byfamily.php', 'family=Thraupidae&la=en&family_n=Tanager and Spindalis&f=48')
this.load('lista49', 'ajax/sp_byfamily.php', 'family=Emberizidae&la=en&family_n=Sparrows&f=49')
this.load('lista50', 'ajax/sp_byfamily.php', 'family=Cardinalidae&la=en&family_n=Dickcissel and Rose-breasted Grosbeak&f=50')
this.load('lista51', 'ajax/sp_byfamily.php', 'family=Icteridae&la=en&family_n=Orioles and Blackbirds&f=51')
this.load('lista52', 'ajax/sp_byfamily.php', 'family=Fringillidae&la=en&family_n=Siskin and Euphonia&f=52')
this.load('lista53', 'ajax/sp_byfamily.php', 'family=Passeridae&la=en&family_n=House Sparrow&f=53')
this.load('lista54', 'ajax/sp_byfamily.php', 'family=Ploceidae&la=en&family_n=Bishops&f=54')
this.load('lista55', 'ajax/sp_byfamily.php', 'family=Estrildidae&la=en&family_n=Waxbill and other Sparrows&f=55') 
this.load('alloption', 'ajax/hideall.php', 'la=en') 
},

pageloadaction:function(pageurl){
	this.onpageload(pageurl) //call customize onpageload() function when an ajax page is fetched/ loaded
},

onpageload:function(pageurl){
 //do nothing by default
},

load:function(containerid, pageurl, bustcache, jsfiles, cssfiles){
	var jsfiles=(typeof jsfiles=="undefined" || jsfiles=="")? [] : jsfiles
	var cssfiles=(typeof cssfiles=="undefined" || cssfiles=="")? [] : cssfiles
	this.connect(containerid, pageurl, bustcache, jsfiles, cssfiles)
}

} //End object

//Sample usage:
//1) ajaxpagefetcher.load("mydiv", "content.htm", true)
//2) ajaxpagefetcher.load("mydiv2", "content.htm", true, ["external.js"])
//3) ajaxpagefetcher.load("mydiv2", "content.htm", true, ["external.js"], ["external.css"])
//4) ajaxpagefetcher.load("mydiv2", "content.htm", true, ["external.js", "external2.js"])
//5) ajaxpagefetcher.load("mydiv2", "content.htm", true, "", ["external.css", "external2.css"])

