var regions = "/xhr/regionsPath.do";
var regionsBuffer,
	regionsWhere;

function rewrite (action) {
	switch (action) {
        case dependantDictionaryAction :
			renderDependantDictionary();
		break;
		case regions :
			regionsWhere.innerHTML = flush (regionsBuffer);
			setRegionsEventHandling ();
		break;
    }
}

function init() {
    if (w3cDOM) {
    	var categoriesNode = document.getElementById ("categorySelector");
        if (categoriesNode && categoriesNode.getElementsByTagName ("select").length == 1) {
            categoriesNode.getElementsByTagName ("select").item (0).onchange = function () {
            	this.form.submit ();
        	}
	    }
	    // dependant dictionaries
		initDependantDictionaries();
		regionsWhere = document.getElementById('chooseRegion');
		if( regionsWhere ){
			regionsBuffer = createBuffer (true);
			URIRegions = URISetParameter (URIRegions, "rid", rid);
			URIRegions = URISetParameter (URIRegions, "ridSelected", ridSelected);
			URIRegions = URISetParameter (URIRegions, "cid", cid);
			regionsBuffer.loadData(URIRegions);
		}
	}
}

listenEvent(window, 'load', init);

function multiselectValidate(obj, max){
	var numOfSelected = 0;
	for( var i=0; i<obj.length; i++){
		if(obj.options[i].selected) numOfSelected++;
	}
	if( numOfSelected > max ){
		for( var i=0; i<numOfSelected-max; i++){
			obj.options[obj.selectedIndex].selected = false;
		}
	}
	
}

function setRegionsEventHandling () {
	var as = regionsWhere.getElementsByTagName ("a");
	for (loop = 0; loop < as.length; loop ++) {
		if (/^collapsible[0-9]*$/.test (as.item (loop).className)) {
			as.item (loop).onmouseover = function () {
				window.status = this.title;
				return true;
			}
			as.item (loop).onmouseout = function () {
				window.status = "";
				return true;
			}
			as.item (loop).onclick = function () {
				rid = classNameGetId (this.className);
				URIRegions = URISetParameter (URIRegions, "rid", rid);
				URIRegions = URISetParameter (URIRegions, "ridSelected", ridSelected);
				URIRegions = URISetParameter (URIRegions, "cid", cid);
				/* inserts loading message */
				regionsWhere.innerHTML = loading;
				regionsBuffer.loadData(URIRegions);
				window.status = "";
				return false;
			}
		}
	}
	var selects = regionsWhere.getElementsByTagName ("select");
	for (loop = 0; loop < selects.length; loop ++) {
		if( !selects.item(loop).multiple ){
			selects.item (loop).onchange = function () {
				rid = this[this.selectedIndex].value;
				if( rid=='1' || rid=='' ) {
					return true;
				}
				URIRegions = URISetParameter (URIRegions, "rid", rid);
				URIRegions = URISetParameter (URIRegions, "ridSelected", ridSelected);
				URIRegions = URISetParameter (URIRegions, "cid", cid);
				/* inserts loading message */
				regionsWhere.innerHTML += loading;
				regionsBuffer.loadData(URIRegions);
			}
		}
	}
}

function classNameGetId (className) {
	/* BEGIN: cuts out first non-numerical characters */
	return className.replace (/^[^0-9]*/, "");
	/* END */
}

function advertisersTypeChanger() {
	if( document.getElementById("advertisersType") ) {
		var advertisersHandler = document.getElementById("advertisersType");
		advertisersHandler.onchange = function() { advertisersTypeChanger(); };
		
		if( advertisersHandler.selectedIndex == 1 ) {
			advertisersHandler.name = "s_ne_pseller_id";
		}
		else if( advertisersHandler.selectedIndex == 2 ) {
			advertisersHandler.name = "s_eq_pseller_id";
		}
		else {
			advertisersHandler.name='all_advertisers';
		}
	}
}

listenEvent(window, 'load', advertisersTypeChanger);
