function weatherSelect(zipcode, container, text, numparam) {
	var now = new Date();
	var timestamp = now.getTime();
	var filenamed = "";
	timestamp = Math.round(timestamp/300000)*300000;
	container = $(container).up('.module');
	if (container.hasClassName('hourlyForecast')) {
	    filenamed = "/hourly-update.front";
    } else if (container.hasClassName('dailyForecast')) {
      filenamed = "/daily-update.front";
    } else if (container.hasClassName('currentConditions')) {
      filenamed = "/current-update.front";
    };
    
	if ((filenamed == "/hourly-update.front") || (filenamed == "/daily-update.front")) {
		if(typeof(numparam) === 'undefined' || numparam == null) {numparam=""}
		
    	new Ajax.Request(filenamed, {
    		method: 'get',
    		parameters: {time: timestamp, zip: zipcode, num: numparam},
    		onCreate: function() {
        		container.down('.locationList').hide();
    			container.down('.currentLocation').innerHTML = "Loading...";
    		},
    		onSuccess: function(transport) {
        		if (transport.responseText.indexOf("<li") == -1) {
        			container.down('.slider-container').innerHTML = "<div class='error'>The forecast for "+zipcode+" is currently unavailable. Please try another location.</div>";
        			container.down('.currentLocation').innerHTML = "Select a location";
    			} else {
        			container.down('.slider-container').innerHTML = transport.responseText;
        			container.down('.currentLocation').innerHTML = text;
    			}
    		},
    		onFailure: function() {
        		container.down('.slider-container').innerHTML = "<div class='error'>Error loading the forecast for "+zipcode+". Please try again.</div>";
        		container.down('.currentLocation').innerHTML = "Select a location";
    		}
    	});
	} else if (filenamed == "/current-update.front") {
        	new Ajax.Request(filenamed, {
        		method: 'get',
        		parameters: {time: timestamp, zip: zipcode, num: numparam},
        		onCreate: function() {
            		container.down('.locationList').hide();
        			  container.down('.currentLocation').innerHTML = "Loading...";
        		},
        		onSuccess: function(transport) {
            			container.down('.current_container').innerHTML = transport.responseText;
            			container.down('.currentLocation').innerHTML = text;
        		},
        		onFailure: function() {
            		container.down('.current_container').innerHTML = "<div class='error'>Error loading the forecast for "+zipcode+". Please try again.</div>";
            		container.down('.currentLocation').innerHTML = "Select a location";
        		}
        	});
    	};
}

function weatherSelectSkyline(zipcode, container, text) {
	var filenamed = "";
	container = $(container).up('.module');
	if (container.hasClassName('mini')) {
	    filenamed = "/skylinemini-update.front";
  	} else if (container.hasClassName('skyline')) {
  		filenamed = "/skyline-update.front";
  	};
	
	if (filenamed == "/skyline-update.front") {
    	new Ajax.Request(filenamed, {
    		method: 'get',
    		parameters: {zip: zipcode},
    		onCreate: function() {
        	container.down('.locationList').hide();
    			container.down('.forecasttab').innerHTML = "Loading...";
    		},
    		onSuccess: function(transport) {
        		if (transport.responseText.indexOf("<img") == -1) {
        			container.down('.forecasttab').innerHTML = "<div class='error'>Hourly forecast for "+zipcode+" is currently unavailable. Please try another location.</div>";
    			} else {
        			container.down('.forecasttab').innerHTML = transport.responseText;
        			container.down('.currentLocation').innerHTML = text;
    			}
    		},
    		onFailure: function() {
        		container.down('.forecasttab').innerHTML = "<div class='error'>Error loading hourly forecast for "+zipcode+". Please try again.</div>";
    		}
    	});
	} else if (filenamed == "/skylinemini-update.front") {
			new Ajax.Request(filenamed, {
	 			method: 'get',
	  		parameters: {zip: zipcode},
	  		onCreate: function() {
	      	container.down('.locationList').hide();
	  			container.down('.forecasttab').innerHTML = "Loading...";
	  		},
	  		onSuccess: function(transport) {
	      		if (transport.responseText.indexOf("<img") == -1) {
	      			container.down('.forecasttab').innerHTML = "<div class='error'>Hourly forecast for "+zipcode+" is currently unavailable. Please try another location.</div>";
	  			} else {
	      			container.down('.forecasttab').innerHTML = transport.responseText;
	      			container.down('.currentLocation').innerHTML = text;
	  			}
	  		},
	  		onFailure: function() {
	      		container.down('.forecasttab').innerHTML = "<div class='error'>Error loading hourly forecast for "+zipcode+". Please try again.</div>";
	  		}
	  	});
	};
}

var locationTimer;
function hideAllLocations() { 
    $$('.locationList').each(function (x) {
        x.hide(); 
    }); 
}

function hideLocations() {
    locationTimer = setTimeout("hideAllLocations();",500);
}
function keepLocations() {
    clearTimeout(locationTimer);
}

function manualWeatherSelect(locList, numparam) {
    var container = $(locList);
    weatherSelect(container.down('input.weatherZipSearch').value,locList,container.down('input.weatherZipSearch').value,numparam); 
    container.down('input.weatherZipSearch').value = 'Enter Zip';
}

function manualWeatherSelectSkyline(locList) {
    var container = $(locList);
    weatherSelectSkyline(container.down('input.weatherZipSearch').value,locList,container.down('input.weatherZipSearch').value); 
    container.down('input.weatherZipSearch').value = 'Zip';
}

function dayMorph (element, type, name) {
	switch (type) {
		case 'over':
			var queue = Effect.Queues.get(name);
			queue.each(function(effect) { effect.cancel(); });
			new Effect.Morph (element, {
				style: 'height: 350px; margin-top: -260px;',
				duration: .2,
				queue: { scope: name, limit: 1 }
			});
			break;
		case 'out':
			var queue = Effect.Queues.get(name);
			queue.each(function(effect) { effect.cancel(); });
			new Effect.Morph (element, {
				style: 'height: 86px; margin-top: 4px;',
			 	duration: .2,
			 	queue: { scope: name, limit: 1 }
			});
			break;
	}
}

function forecastTab() {
	$('weathertab01').show();
	$('tab01').addClassName('activetab');
	$('tab02').removeClassName('activetab');
	$('weathertab02').hide();
	$('locationwidget').show();
}

function radarTab() {
	$('weathertab01').hide();
	$('weathertab02').show();
	$('tab02').addClassName('activetab');
	$('tab01').removeClassName('activetab');
	$('locationwidget').hide();
}

function loadIcons(alertTypeArray, randomID) {
    var alertType = "";
	for (count = 0; count < alertTypeArray.length; count++) {
		alertType = alertTypeArray[count];
		if (alertType != "") {
			if (alertType.indexOf("flood") > -1) {
				$('alertImageList-'+randomID).childElements()[0].removeClassName('wxicon');
			 } else if (alertType.indexOf("snow") > -1) {
				$('alertImageList-'+randomID).childElements()[1].removeClassName('wxicon');
			 } else if (alertType.indexOf("fog") > -1) {
				$('alertImageList-'+randomID).childElements()[2].removeClassName('wxicon');
		     } else if (alertType.indexOf("thunderstorm") > -1) {
				$('alertImageList-'+randomID).childElements()[3].removeClassName('wxicon');
			 } else if (alertType.indexOf("fire") > -1) {
				$('alertImageList-'+randomID).childElements()[4].removeClassName('wxicon');
			 } else if (alertType.indexOf("tornado") > -1) {
				$('alertImageList-'+randomID).childElements()[5].removeClassName('wxicon');
			 } else if (alertType.indexOf("hurricane") > -1) {
				$('alertImageList-'+randomID).childElements()[6].removeClassName('wxicon');
			 } else {
				$('alertImageList-'+randomID).childElements()[7].removeClassName('wxicon');
			 }
		 } 
	}
}

function initializeIcons(alerttype, randomID) {

	for (x=0; x <= 7; x++) {
		$('alertImageList-'+randomID).childElements()[x].removeClassName('activeicon');
	}
	
	if (alerttype.toLowerCase().indexOf('flood')>-1) {
		$('alertImageList-'+randomID).childElements()[0].addClassName('activeicon');
	} else if (alerttype.toLowerCase().indexOf('snow')>-1){
		$('alertImageList-'+randomID).childElements()[1].addClassName('activeicon');
	} else if (alerttype.toLowerCase().indexOf('fog')>-1){
		$('alertImageList-'+randomID).childElements()[2].addClassName('activeicon');
	} else if (alerttype.toLowerCase().indexOf('thunderstorm')>-1){
		$('alertImageList-'+randomID).childElements()[3].addClassName('activeicon');
	} else if (alerttype.toLowerCase().indexOf('fire')>-1){
		$('alertImageList-'+randomID).childElements()[4].addClassName('activeicon');
	} else if (alerttype.toLowerCase().indexOf('tornado')>-1){
		$('alertImageList-'+randomID).childElements()[5].addClassName('activeicon');
	} else if (alerttype.toLowerCase().indexOf('hurricane')>-1){
		$('alertImageList-'+randomID).childElements()[6].addClassName('activeicon');
	} else {
		$('alertImageList-'+randomID).childElements()[7].addClassName('activeicon');
	}
}

function alertAdvance(randomID, alertArray){
	for (x=0; x < alertArray.length; x++) {
		if (alertArray[x].hasClassName('alertHidden-'+randomID) == false) {
			alertArray[x].addClassName('alertHidden-'+randomID);
			alertArray[x].addClassName('alertHidden');
			if(x+1 >= alertArray.length) {
				alertArray[0].removeClassName('alertHidden-'+randomID);
				alertArray[0].removeClassName('alertHidden');
				currentArrayCount = 1;
				$('alertCounter-' + randomID).innerHTML = alertArray[0].down('div').innerHTML;
				initializeIcons(alertArray[0].down('span').innerHTML, randomID);
			} else {
				currentArrayCount++;
				alertArray[x+1].removeClassName('alertHidden-'+randomID);
				alertArray[x+1].removeClassName('alertHidden');
				$('alertCounter-' + randomID).innerHTML = alertArray[x+1].down('div').innerHTML;
				initializeIcons(alertArray[x+1].down('span').innerHTML, randomID);
			}
			break;
		}
	}
}

function alertRetreat(randomID, alertArray){
	for (x=0; x < alertArray.length; x++) {
		if (alertArray[x].hasClassName('alertHidden-'+randomID) == false) {
			alertArray[x].addClassName('alertHidden-'+randomID);
			alertArray[x].addClassName('alertHidden');
			if(x-1 < 0) {
			    alertArray[alertArray.length-1].removeClassName('alertHidden-'+randomID);
				alertArray[alertArray.length-1].removeClassName('alertHidden');
				$('alertCounter-' + randomID).innerHTML = alertArray[alertArray.length-1].down('div').innerHTML;
				initializeIcons(alertArray[alertArray.length-1].down('span').innerHTML, randomID);
			} else {
				currentArrayCount--;
				alertArray[x-1].removeClassName('alertHidden-'+randomID);
				alertArray[x-1].removeClassName('alertHidden');
				$('alertCounter-' + randomID).innerHTML = alertArray[x-1].down('div').innerHTML;
				initializeIcons(alertArray[x-1].down('span').innerHTML, randomID);
			}
			break;
		}
	}
}