isDOM = document.getElementById; //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
isOpera = isOpera5 = window.opera && isDOM; //Opera 5+
isOpera6 = isOpera && window.print; //Opera 6+
isOpera7 = isOpera && document.readyState; //Opera 7+
isMSIE = document.all && document.all.item && !isOpera; //Microsoft Internet Explorer 4+
isMSIE5 = isDOM && isMSIE; //MSIE 5+
isNetscape4 = document.layers; //Netscape 4.*
isMozilla = isDOM && navigator.appName == "Netscape"; //Mozilla или Netscape 6.*

function getCountries(FRM, VAL, LANG){
	var req = new Subsys_JsHttpRequest_Js();
	req.onreadystatechange = function() {
		if (req.readyState == 4) {
			eval(req.responseJS.q);

			with(FRM.countries){
				var len = hasChildNodes() ? childNodes.length : 0 ;
				
				var class_name = '';
				var class_obj = '';

				for(var i=1; i<len; i++){
					removeChild(lastChild);
				}

				len = obj_classes.length;
				k = 0;

				for(i=0; i<len; i++){
					if(class_name != obj_classes[i])
					{
						class_obj = document.createElement('optgroup');
						class_obj.label = class_name = obj_classes[i];
						
						appendChild(class_obj);
					}
					
					obj_opt = document.createElement('option');
					obj_opt.value = obj_uris[i];
					obj_opt.innerHTML = obj_names[i];

					class_obj.appendChild(obj_opt);
				}
			}
		}
	};

	req.caching = false;
	req.open('GET', '/requests/getMenuObjects.php', true);
	req.send({ pid: VAL, lid: LANG });
}

function showRPhoto(image){
	show('/showRPhoto.php?image=' + image, 400, 400, '');

	return false;
}

function showSGallery(i){
	if(document.getElementById('phimg') == null){
		setTimeout("showSGallery(" + i + ")", 1000);
		return false;
	}

	if(i > phlen - 1)
		i = 0;

	if(i < 0)
		i = phlen - 1;

	document.getElementById('phimg').src = photos[i];
	document.getElementById('phimg').onclick = function() {
		show('/showPPhoto.php?id=' + photos_id[i] + '&lang=' + lang, 400, 400, '');
	}

	document.getElementById('phprev').innerHTML = phlen > 1 ? '<a href="#" onclick="return showSGallery(' + (i-1) + ')" class="grey11">&larr; <u>' + nav[0] + '</u></a>' : '&nbsp;' ;
	document.getElementById('phnext').innerHTML = phlen > 1 ? '<a href="#" onclick="return showSGallery(' + (i+1) + ')" class="grey11"><u>' + nav[1] + '</u> &rarr;</a>' : '&nbsp;' ;

	return false;
}

function showTopNav(IDENT)
{
	if(IDENT == 'map'){
		document.getElementById('top_photo_nav_map').style.display = document.getElementById('map').style.display = 'block';
		document.getElementById('top_photo_nav_gallery').style.display = document.getElementById('gallery').style.display = 'none';
	} else {
		document.getElementById('top_photo_nav_map').style.display = document.getElementById('map').style.display = 'none';
		document.getElementById('top_photo_nav_gallery').style.display = document.getElementById('gallery').style.display = 'block';
	}

	return false;
}

function showGroupNav(ID)
{
	var len = grouptabs.length;
	
	for(var i=0; i<len; i++)
	{
		document.getElementById('grouptabs_nav_' + grouptabs[i]).style.display = ID == grouptabs[i] ? 'block' : 'none' ;
	}

	return false;
}

function showClassNav(ID)
{
	var len = classtabs.length;
	
	for(var i=0; i<len; i++)
	{
		document.getElementById('classtabs_nav_' + classtabs[i]).style.display = ID == classtabs[i] ? 'block' : 'none' ;
	}

	return false;
}
function showDiv(ID) {
	for (i=1; i<5; i++) {
		document.getElementById('dv' + i).style.display = i == ID ? 'block' : 'none';
	}
	return false;
}

function show(url,wi,he,ran_win) {
	myWindow=window.open(url, ran_win, "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=" + he + ",width=" + wi);
	return false;
}

var upl = {frm: null, field: null, div: null};

function showGGD(frm, field, div){
	upl.frm = frm;
	upl.field = field;
	upl.div = div;

	window.open('/showGGD.php', 'wn1', "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,height=100,width=400");
	return false;
}

function placeImageLink(PATH){
	with(document.forms[upl.frm]){
		eval(upl.field + '.value = "' + PATH + '"');
	}

	with(document.getElementById(upl.div))
	{
		innerHTML = '<img src="/' + PATH + '" border=0 hspace=0 vspace=0 alt="" width="100">';
		style.display = 'block';
	}
}		

var trv = {frm: null, field: null, div: null};

function addRoute(frm, field, div, lang, show_type){
	trv.frm = frm;
	trv.field = field;
	trv.div = div;

	trv.t_id = document.forms[trv.frm].travel_id.value;
	trv.show_type = show_type;
	trv.lang = lang;

	window.open('/addRoute.php?lang=' + lang, 'wn1', "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,height=700,width=900");
	return false;
}

function placeTravelPoint(ID, NAME){
	if(trv.frm){
		with(document.forms[trv.frm][trv.field]){
			value += (value ? '-' : '') + ID;
		}

		var sreq = new Subsys_JsHttpRequest_Js();
		sreq.onreadystatechange = function() {
			if (sreq.readyState == 4) {
				if(sreq.responseJS.q){
					document.forms[trv.frm].travel_id.value = trv.t_id = sreq.responseJS.q ;

					var req = new Subsys_JsHttpRequest_Js();
					req.onreadystatechange = function() {
						if (req.readyState == 4) {
							if(req.responseJS.q){
								document.getElementById('add_table').innerHTML = req.responseJS.q ? req.responseJS.q : '&nbsp;' ;
							}
						}
					};
					
					req.caching = false;
					req.open('GET', '/requests/refreshRoute.php', true);
					req.send({ t_id: trv.t_id, lang_id: trv.lang, show_type: trv.show_type });
				}
			}
		};
			
		sreq.caching = false;
		sreq.open('POST', '/requests/saveRoute.php', true);
		sreq.send({ t_id: trv.t_id, points: document.forms[trv.frm][trv.field].value, name: document.forms[trv.frm].name.value, date1: document.forms[trv.frm].date1.value, date2: document.forms[trv.frm].date2.value, descr: document.forms[trv.frm].descr.value });
	}

	return true;
}


// Prototypes
String.prototype.trim = function () {
	//var str = this.replace(/^\W+/gi, '').replace(/\W+$/gi, '').replace(/( ){2,}/g, ' ');
	var str = this.replace(/^( )+/gi, '').replace(/( )+$/gi, '').replace(/( ){2,}/g, ' ');
	return str;
}

clear = function(obj, ind) {
	if(obj.type == 'select' || obj.type == 'select-one' || obj.type == 'select-multiple'){
		with(obj){
			var len = options.length;

			for(var i=ind; i<len; i++){
				options[ind+1] = null;
			}
		}
	}
}

fillOptions = function(obj, ind, ids, names, sel) {
	if(obj.type == 'select' || obj.type == 'select-one' || obj.type == 'select-multiple'){
		clear(obj, ind-1);

		with(obj){
			var len = ids.length;

			for(var i=0; i<len; i++){
				options[ind+i] = new Option(names[i], ids[i]);
				if(sel == ids[i]){
					value = sel;
				}
			}
		}
	}
}


Array.prototype.array_search = function(val) {
	var len = this.length;

	for(var i=0; i<len; i++){
		if(this[i] == val)
			return i;
	}

	return -1;
}
