//You may not copy, re-release, modify or give away this code in part or in whole.
//You may not release derivitive works or add-ons for this code.
//You be a member in good standing at http://vbmodder.com to legaly
//use this code. Having done so you may use it on one licensed vbulletin site.
//This code is free to active members of vbmodder.com only.
function switchDisplay(){
	_flipFlop(fetch_object('vbweather_default_info'));
	_flipFlop(fetch_object('vbweather_more_info'));
}

function _flipFlop(el){
	el.style.display = (el.style.display == 'none')?'block':'none';
}

function checkValidity(_do_update, _loc, _unit){
	if(_do_update && AJAX_Compatible){
		new vBWeather_AJAX_InlineLocationUpdate(_loc, _unit);
	}
}

function vBWeather_AJAX_InlineLocationUpdate(_loc, _unit){
	this.loc_obj = _loc;
	this.prefix = 'weather_';
	this.xml_sender = null;

	this.weather_update = function(){
		if (!this.xml_sender){
			this.xml_sender = new vB_AJAX_Handler(true);
		}
		if(/[A-Z]{4}\d{4}/.test(this.loc_obj)){
			this.xml_sender.onreadystatechange(this.onreadystatechange);
			this.xml_sender.send(
				'vbweather/vb_weatherdata_fetch_current.php',
				'do=update&unit='+_unit+'&loc='+this.loc_obj
			);
		}
	}

	this.clearOut = function(el){
		if(el.firstChild){
			el.removeChild(el.firstChild);
		}
	}

	this.idArray = function(){
		this.ids = new Array(
			'cc_last_update','cc_type_icon','cc_type',
			'cc_temp','cc_humidity','cc_wind_from_line',
			'cc_uv_line','cc_feels_like','cc_bar_reading',
			'cc_bar_sign','cc_wind_gust','cc_visibility',
			'cc_dew_point','loc_sunrise','loc_sunset'
		);
	}

	this.replaceData = function(data, _type, img, html){
		this.idArray();
		var el = document.getElementById(this.prefix+this.ids[data[0]]+_type);
		if(img == 2){
			this.clearOut(el);
			(!html)?el.appendChild(document.createTextNode(data[1])):el.innerHTML=data[1];
		}else{
			var srcs = data[1].split('|::|');
			el.setAttribute('src', srcs[parseInt(img)]);
		}
	}

	var me = this;

	this.onreadystatechange = function(){
		if (me.xml_sender.handler.readyState == 4 && me.xml_sender.handler.status == 200 && me.xml_sender.handler.responseText){
			if(me.xml_sender.handler.responseText != '2'){
				_responce = me.xml_sender.handler.responseText.split('|:|');
				for (var i=0; i<_responce.length; i+=1){
					var temp = _responce[i].split('|');
					switch (parseInt(temp[0])){
						case 0:case 2:case 3:case 4:case 5:case 6:case 7:
							me.replaceData(temp, '_small', 2, false);
						case 8:case 10:case 11:case 12:case 13:case 14:
							me.replaceData(temp, '_big', 2, false)
							break;
						case 9:
							me.replaceData(temp, '_big', 2, true)
							break;
						case 1:
							me.replaceData(temp, '_small', 0, false);
							me.replaceData(temp, '_big', 1, false)
							break;
					}
				}
			}
			if (is_ie){
				me.xml_sender.handler.abort();
			}
		}
	}
	this.weather_update();
}