var MAP = {
	path: 'images/map/',
	ext: 'gif',
	change: function(size, img) {
		if (img && MAP.preloadCache[size] && MAP.preloadCache[size][img]) {
			document.getElementById('map_' + size).src = MAP.preloadCache[size][img];
			return;
		}
		if (!img) img = '_index';
		document.getElementById('map_' + size).src = MAP.path + size + '/' + img + '.' + MAP.ext;
	},
	preloadCache: {},
	preloadImage: function(size, srcs) {
		for (var i = 0; i<srcs.length; i++) {
			if (MAP.preloadCache[size] && MAP.preloadCache[size][srcs[i]]) {
				continue;
			}
			var img = new Image;
			img.src = MAP.path + size + '/' + srcs[i] + '.' + MAP.ext;
			if (!MAP.preloadCache[size]) {
				MAP.preloadCache[size] = {};
			}
			MAP.preloadCache[size][srcs[i]] = img.src;
		}
	}
}
	
MAP.preloadImage('260', ['aus','de','nz','uk','us']);
MAP.preloadImage('180', ['aus','de','nz','uk','us']);

function gebi(id) {
	return document.getElementById(id)
}

function trim(str) {
    var newstr = str.replace(/^\s*(.+?)\s*$/, "$1");
    if (newstr == " ") {
        return "";
    }
    return newstr;
}

function testin(frm) {
	check_res=0;
	nik_user=trim(gebi('nik_user').value);
	passw1=trim(gebi('passw1').value);
	passw2=trim(gebi('passw2').value);
	name_user=trim(gebi('name_user').value);
	email_user=trim(gebi('email_user').value);
	city=trim(gebi('city').value);
	if (nik_user.length < 5) gebi('errmsg').innerHTML='Логин должен содержать более четырех символов';
	else if (passw1.length < 5) gebi('errmsg').innerHTML='Пароль должен содержать больше четырех символов';
			else if (passw1 != passw2) gebi('errmsg').innerHTML='Не совпадают введенные пароли ';
				else if (name_user.length == 0) gebi('errmsg').innerHTML='Необходимо заполнить поле "Имя"';
					else if (city.length == 0) gebi('errmsg').innerHTML='Необходимо заполнить поле "Город"';
						else if (email_user.length == 0) gebi('errmsg').innerHTML='Необходимо заполнить поле "Email"';
							else {
								gebi('errmsg').innerHTML="";
								if (nik_user.length > 1 && email_user.length > 0 && name_user.length > 0) {
									if (!check_email(email_user)) gebi('errmsg').innerHTML='Неправильно написан адрес почты';
								    else {
										JsHttpRequest.query('/check_user.php', { 'nik': nik_user, 'email': email_user , 'type': 0},
								    		function(result, errors) {
							    	    		gebi("errmsg").innerHTML = errors+'&nbsp;'; 
												check_res=result["res"];
												if (check_res == 1) gebi("errmsg").innerHTML='Такой логин уже зарегистрирован';
													else if (check_res == 2) gebi("errmsg").innerHTML='Такой Email уже зарегистрирован';
														else if (check_res == 3) {
															gebi("reg").value='canbe';
															frm.submit();
														}
				    						},
									 		true
								    	);
									}
								}
							}
	gebi("submit_check").style.display='block';
	return false;
}

function testedt(frm, user_nik) {
	check_res=0;
	name_user=trim(gebi('name_user').value);
	email_user=trim(gebi('email_user').value);
	city=trim(gebi('city').value);
	if (name_user.length == 0) gebi('errmsg').innerHTML='Необходимо заполнить поле "Имя"';
		else if (city.length == 0) gebi('errmsg').innerHTML='Необходимо заполнить поле "Город"';
			else if (email_user.length == 0) gebi('errmsg').innerHTML='Необходимо заполнить поле "Email"';
				else {
					gebi('errmsg').innerHTML="&nbsp;";
					if (!check_email(email_user)) gebi('errmsg').innerHTML='Неправильно написан адрес почты';
				    else {
						JsHttpRequest.query('/check_user.php', { 'nik': user_nik, 'email': email_user, 'type': 1},
    					function(result, errors) {
		        			gebi("errmsg").innerHTML = errors+'&nbsp;'; 
							check_res=result["res"];
							if (check_res == 1) gebi("errmsg").innerHTML='Такой логин уже зарегистрирован';
								else if (check_res == 2) gebi("errmsg").innerHTML='Такой Email уже зарегистрирован';
									else if (check_res == 3) {
										gebi("reg").value='canbe';
										frm.submit();
									}
					    	},
					 		true
	    				);
					}
				}
	gebi("submit_check").style.display='block';
	return false;
}

function testpassw() {
	newp1=trim(gebi("newpass1").value);
	newp2=trim(gebi("newpass2").value);
	if (gebi("oldpass").value == "") alert('Поле "Действующий пароль" не может быть пустым!');
		else if (newp1 == "") alert('Поле "Новый пароль" не может быть пустым!');
			else if (newp2 == "") alert('Поле "Повтор нового пароля" не может быть пустым!');
				else if (newp1 != newp2) alert('Не совпадают данные в полях "Новый пароль" и "Повтор нового пароля"!');
					else if (newp1.length < 5) alert('Длина нового пароля должна быть не менее 5 символов!');
						else submit();
	gebi("savepassw").style.display='block';
}

function drop_spaces(str) {
    var newstr = trim(str);
    return newstr.replace(/(\s)+/g, ""); 
}

function check_email(email) {
    var template = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z])+$/;
    email = drop_spaces(email);
    if (template.test(email)) return true;
   	else return false; 
}

function rubron(tid, rid) {
	if (gebi("rubr"+tid)) {
		gebi("rubr"+tid).className="rubrbutsel";
	}
}

function rubrout(tid, rid) {
	if (gebi("rubr"+tid) && tid != rid) {
		gebi("rubr"+tid).className="rubrbut";
	}
}

function docson(tid, rid) {
	if (gebi("docs"+tid)) {
		gebi("docs"+tid).className="docsbutsel";
	}
}

function docsout(tid, rid) {
	if (gebi("docs"+tid) && tid != rid) {
		gebi("docs"+tid).className="docsbut";
	}
}

function menuon(tid) {
	if (gebi("menu"+tid)) {
		gebi("menu"+tid).className="menusel";
	}
}

function menuout(tid, rid, pid) {
	if (gebi("menu"+tid)) {
		if ((tid == 1 && (rid != 1 || pid != 0)) || (tid == 2 && (rid != 2 || pid != 2)) || (tid == 3 && (rid != 2 || pid != 1)) || (tid == 4 && (rid != 2 || pid != 0)) || (tid == 5 && (rid != 2 || pid != 5)) || (tid == 6 && (rid != 2 || pid != 3)) || (tid == 7 && (rid != 2 || pid != 4)) || (tid == 8 && rid != 12) || (tid == 9 && rid != 13) || (tid == 10 && (rid != 1 || pid != 2)) || (tid == 11 && (rid != 1 || pid != 1))) {
			gebi("menu"+tid).className="menu";
		}
	}
}

function showEl(el) {
	whichEl = document.getElementById("div" + el);
    if (whichEl) {
        if (whichEl.style.display != "block") whichEl.style.display = "block";
			else whichEl.style.display = "none";
    }
}

function countnum(frm) {
	var count=2000;
	counts=gebi("comment").value.length;
	if (counts > count) gebi("comment").value=gebi("comment").value.substring(0,count);
	counts=gebi("comment").value.length;
	gebi("countsymb").value=count-counts;
	gebi("countsymb").style.backgroundColor="white";
	if ((count-counts) < 50) gebi("countsymb").style.backgroundColor="Yellow";
	if ((count-counts) < 20) gebi("countsymb").style.backgroundColor="Red";
}

String.prototype.replaceAll=function(find, replace_to){
    return this.replace(new RegExp(find, "g"), replace_to);
}

function str_replace(search, replace, subject) {
	return subject.split(search).join(replace);
}

function copycomm(numcomm, nik, daten) {
	stext=gebi("txtcomm_"+numcomm).innerHTML;
	numlen=stext.length;
	if (stext.indexOf("div class=") > 0) {
		stext=stext.substr(stext.indexOf("</div>")+6);
		stext=str_replace("<div>", "", stext);
		stext=str_replace("</div>", "", stext);
	}
	if (numlen > 100) {
		nump = stext.indexOf(" ", 80);
		numpoint = stext.indexOf(".", 100);
		numznakv = stext.indexOf("!", 100) + 1;
		numznakq = stext.indexOf("?", 100) + 1;
		if (numpoint > 0 && numznakv > 0) {
			if (numpoint < numznakv) nump = numpoint;
				else nump = numznakv;
		}
		if (numznakq > 0 && numznakq < nump) nump = numznakq;
		if (nump > 0) stext=stext.substring(0, nump)+"...";
	}
	stext=stext.replaceAll('<br>', String.fromCharCode(10));
	gebi("comment").value = nik+", "+daten+String.fromCharCode(10)+stext+String.fromCharCode(10)+'--------------------'+String.fromCharCode(10);
	gebi("div1").style.display="block";
	gebi("parent").value=numcomm;
	gebi("comment").focus();
}

function selcountry() {
	country=gebi('selcountry').value;
	window.location.href="/foreign_"+country+".html";
}

function visYear(Year) {
	if (((Year % 4)==0) && ((Year % 100) != 0) || ((Year % 400)==0)) return (true);
		else return (false);
}

function getDaysInMonth(month, year) {
	var days;
	if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) days=31;
		else if (month==4 || month==6 || month==9 || month==11) days=30;
			else if (month==2) {
				if (visYear(year)) days=29;
				else days=28;
			}
	return(days);
}

function setToday() {
	var now=new Date();
	day=now.getDate();
	month=now.getMonth();
	year=now.getYear();
	if (year < 2000) year=year+1900;
	displayCalendar(day, month, year);
	gebi("strdate").innerHTML=arr_month[month]+" "+year;
}

function setPrevMonth() {
	if (month == 0) {
		month=11;
		year--;
	} else month--;
	for (i=0;i<42;i++) {
		gebi(i).style.border="none";
		gebi(i).style.padding="3px";
	}
	tday=50;
	if (year == curryear && month == currmonth) tday=currday;
	displayCalendar(tday, month, year);
	gebi("strdate").innerHTML=arr_month[month]+" "+year;
}

function setNextMonth() {
	var now=new Date();
	nowmonth=now.getMonth();
	nowyear=now.getYear();
	if (nowyear < 2000) nowyear=nowyear+1900;
	if (month == 11) {
		month=0;
		year++;
	} else month++;
	for (i=0;i<42;i++) {
		gebi(i).style.border="none";
		gebi(i).style.padding="3px";
	}
	tday=50;
	if (year == curryear && month == currmonth) tday=currday;
	displayCalendar(tday, month, year);
	gebi("strdate").innerHTML=arr_month[month]+" "+year;
}

function tstsearch(frm) {
	srchwords=trim(gebi('search').value);
	if (srchwords.length > 2) return true;
	else return false;
}

function apply() {
	document.login.submit_check.disabled=true;
	if(document.login.agree.checked==true) document.login.submit_check.disabled=false;
	if(document.login.agree.checked==false) document.login.submit_check.enabled=false;
}

function printtext(tid) {
	window.open ("/print"+tid+".html", "printart","top=50,left=100,status=1,toolbar=1,menubar=1,resizable=1,scrollbars=1,height=600,width=700");
}

function Slider(identifier, offset, delay) {
    this.getIdentifier = function getIdentifier() { return identifier; }
    {   // Slider: beginning of getMoverWidth()
        var slider = document.getElementById(identifier);
        if (slider == null) return new Object();
        var slides = slider.getElementsByTagName("li");
//        var minSlidesNumber = 1;
//        if (slides.length < minSlidesNumber) return new Object();
        var moverWidth = slides[0].offsetWidth;
        this.getMoverWidth = function getMoverWidth() { return moverWidth; }
    }   // Slider: end of getMoverWidth()
    
    {   // Slider: beginning of getMaxShiftOffset(), getMinShiftOffset(), getShiftOffset()
        
        var minShiftOffset = 1;
        var maxShiftOffset = 100;
        var shiftOffset = 4;
        if (offset >= minShiftOffset && offset <= maxShiftOffset) shiftOffset = offset;
        if (offset <= shiftOffset) return new Object();
        this.getMaxShiftOffset = function getMaxShiftOffset() { return maxShiftOffset; };
        this.getMinShiftOffset = function getMinShiftOffset() { return minShiftOffset; };
        this.getShiftOffset = function getShiftOffset() { return shiftOffset; }
    }   // Slider: end of getMaxShiftOffset(), getMinShiftOffset(), getShiftOffset()
    
    {   // Slider: beginning of getMaxShiftDelay(), getMinShiftDelay(), getShiftDelay()
        var minShiftDelay = 5;
        var maxShiftDelay = 250;
        var shiftDelay = 15;
        if (delay >= minShiftDelay && delay <= maxShiftDelay) shiftDelay = delay;
        this.getMaxShiftDelay = function getMaxShiftDelay() { return maxShiftDelay; };
        this.getMinShiftDelay = function getMinShiftDelay() { return minShiftDelay; };
        this.getShiftDelay = function getShiftDelay() { return shiftDelay; }
    }   // Slider: end of getMaxShiftDelay(), getMinShiftDelay(), getShiftDelay()
}   // end of Slider(identifier)


Slider.prototype.slideLeft = function slideLeft() {
    var slides = document.getElementById(this.getIdentifier())
        .getElementsByTagName("li");
    var slidesContainer = slides[0].parentNode;
    var mover = slides[0];
    var firstRegularSlide = slides[1];
    if (mover.offsetWidth == this.getMoverWidth()) {
        var lastRegularSlide = slides[slides.length - 1];
        mover.style.width = "0px";
        slidesContainer.insertBefore(lastRegularSlide, firstRegularSlide);
    }
    var moverWidth = mover.offsetWidth;
    if (this.getMoverWidth() - moverWidth > this.getShiftOffset()) moverWidth += this.getShiftOffset();
    else moverWidth = this.getMoverWidth();
    mover.style.width = moverWidth + "px";
    if (moverWidth < this.getMoverWidth()) {
        var self = this;
        setTimeout(
            function () { self.slideLeft(); },
            this.getShiftDelay()
        );
    }
}   // Slider.prototype: end of slideLeft()


Slider.prototype.slideRight = function slideRight() {
    var slides = document.getElementById(this.getIdentifier())
        .getElementsByTagName("li");
    var slidesContainer = slides[0].parentNode;
    var mover = slides[0];
    var firstRegularSlide = slides[1];
    var moverWidth = mover.offsetWidth;
    if (moverWidth > this.getShiftOffset()) moverWidth -= this.getShiftOffset();
    else moverWidth = 0;
    mover.style.width = moverWidth + "px";
    if (moverWidth > 0) {
        var self = this;
        setTimeout(
            function () { self.slideRight(); },
            this.getShiftDelay()
        );
    }
    else {
        slidesContainer.insertBefore(firstRegularSlide, null);
        mover.style.width = this.getMoverWidth() + "px";
    }
}   // Slider.prototype: end of slideRight()

function chngmain() {
	setInterval("mainSlider.slideRight()", 8000);
}

function commsLeft(object) {
/*    var slides = document.getElementById(object)
        .getElementsByTagName("li");
    var slidesContainer = slides[0].parentNode;
    var mover = slides[0];
    var firstRegularSlide = slides[1];
    if (mover.offsetWidth == 155) {
        var lastRegularSlide = slides[slides.length - 1];
        mover.style.width = "0px";
        slidesContainer.insertBefore(lastRegularSlide, firstRegularSlide);
    }
    var moverWidth = mover.offsetWidth;
    if (155 - moverWidth > 4) moverWidth += 4;
    else moverWidth = 155;
    mover.style.width = moverWidth + "px";
    if (moverWidth < 155) {
//        setTimeout( function () { commsLeft(object); }, 15);
        setInterval( function () { commsLeft(object); }, 15);
    }
*/
}

function testquest(frm) {
	user_name=trim(gebi('quest_name').value);
	txtmsg=trim(gebi('quest_txt').value);
	if (user_name.length == 0) {
		alert('Необходимо заполнить поле "Ваше имя"');
		return false;
	} else if (txtmsg.length == 0) {
		alert('Необходимо заполнить поле "Вопрос"');
		return false;
	} else if (gebi("capcode").value == "") {
		alert('Необходимо заполнить поле "Код с картинки"');
		return false;
	} else {
		gebi("submit_back").style.display='none';
		return true;
	}
}

