/**
 * @author silent
 */

function clearSubregions(){
	var subregion = document.getElementById('subregion');
	if(subregion){
		subregion.options.length = 1;
	}
}

function clearAdTerms(){
	var adterm = document.getElementById('ad_term');
	if(adterm){
		adterm.options.length = 1;
	}
}

function clearAdTypes(){
	var types = getAdTypes();
	if(types instanceof Array){
		for(var i = 0; i < types.length; i++){
			enableWidget('ad_type_'+types[i]['id'], false);
			displayElement('box_ad_type_'+types[i]['id'], 'none');
		}
	}
}

function getAdTypes(){
	if(arguments.length == 1){
		var ids = arguments[0];
		if(ids instanceof Array){
			var types = new Array();
			var t;
			for(var i = 0; i < ids.length; i++){
				t = getCollectionItem('adtypes', ids[i]);
				if(t){
					types[types.length] = t;
				}
			}
			return types;
		}else{
			return false;
		}
	}else{
		return getCollection('adtypes'); 
	}
}

function getCategory(id){
	return getCollectionItem('categories', id);
}

function getRegion(id){
	return getCollectionItem('regions', id);	
}

function getSelectedCategory(){
	var category = document.getElementById('category');
	if(category){
		return getCategory(category.options[category.selectedIndex].value);
	}else{
		return null;
	}	
}

function getSelectedRegion(){
	var region = document.getElementById('region');
	if(region){
		return getRegion(region.options[region.selectedIndex].getAttribute('value'));
	}else{
		return null;
	}
}

function getRegionChildren(id){
	var region = getRegion(id);
	var subregions = new Array();
	if(region){
		for(var i = 0; i < regions.length; i++){
			if(regions[i]['parent'] == id){
				subregions[subregions.length] = regions[i];
			}
		}
	}
	return subregions;
}

function onChangeCategory(){
	var category = document.getElementById('category');
	if(category && category.options[category.selectedIndex].getAttribute('value') == 0){
		category.options[0].selected = true;
	}
	renderAdTypes();
	renderAdTerms();
	renderAdProperties();
}

function renderAdForm(){
	renderSubregions();
	renderAdTypes();
	renderAdTerms();
}

function renderAdTerms(){
	var ad_term_select = document.getElementById('ad_term');
	if(ad_term_select){
		var prevTermId = ad_term_select.options[ad_term_select.selectedIndex].getAttribute('value');
		clearAdTerms();
		var category = getSelectedCategory();
		if(category){
			var map = getCollectionItem('category_terms_map', category['id']);
			if(ad_term_select && map){
				var ad_term;
				for(var i = 0; i < map['t'].length; i++){
					ad_term = getCollectionItem('adterms', map['t'][i]);
					if(ad_term){
						ad_term_select.options[(i+1)] = new Option(ad_term.cap, ad_term.id, false, (prevTermId == ad_term.id));
					}
				}
			}
		}
	}
}

function renderAdTypes(){
	var category = getSelectedCategory();
	clearAdTypes();
	if(category){
		if(category['t'] instanceof Array){
			var tid;
			for(var i = 0; i < category['t'].length; i++){
				tid = 'ad_type_'+category['t'][i];
				displayElement('box_'+tid, 'inline');
				enableWidget(tid, true);
				if(i == 0){
					checkRadio(tid, true);
				}
			}
		}
		displayElement('row_ad_type', '');
	}else{
		displayElement('row_ad_type', 'none');
	}
}

function renderSubregions(){
	var region = getSelectedRegion();
	clearSubregions();
	if(region){
		var subregion = document.getElementById('subregion');
			if(subregion){
			var children = getRegionChildren(region['id']);
			for(var i = 0; i < children.length; i++){
				subregion.options[(i+1)] = new Option(children[i].cap, children[i].id, false, false);
			}
			enableWidget('subregion', true);
			displayElement('row_subregion', '');
		}
	}else{
		enableWidget('subregion', false);
		displayElement('row_subregion', 'none');
	}
}

function selectCategory(id){
	selectSelectOptionByValue('category', id);
}

function selectRegion(id){
	selectSelectOptionByValue('region', id);
}

function selectSubregion(id){
	selectSelectOptionByValue('subregion', id);
}

function selectTerm(id){
	selectSelectOptionByValue('ad_term', id);
}

function selectType(id){
	
}

function showBigImage(_thumb, _img){
	var _o_img = document.images[_img];
	var _o_thumb = document.images[_thumb];
	if(!_img || !_thumb)return;

	var _img_src = _o_img.src;
	var _thumb_src = _o_thumb.src;
	var _tmp = _img_src;

	var re = /(.+\/)(\d{1})(\/.+\.[a-z]+)$/;
	if(re.test(_thumb_src)){
		_img_src = RegExp.$1+'0'+RegExp.$3;
	}else{
		return;
	}

	if(re.test(_tmp)){
		_thumb_src = RegExp.$1+'1'+RegExp.$3;
	}else{
		return;
	}
// * avoid IE bugs: keep latency * //
 	setTimeout("document.images['"+_img+"'].src = '"+_img_src+"'", 100);
 	setTimeout("document.images['"+_thumb+"'].src = '"+_thumb_src+"'", 100);
}

