/********** Adriver AsyncJS loader core2 *************/
function adriver (ph, prm, defer){
	if(this instanceof adriver){
		var p = null;
		if (typeof(ph) == "string"){
			p = document.getElementById(ph);
		}else{
			p = ph; ph = p.id;
		}

		if(!p) {return null}
		if (adriver.items[ph]){ return adriver.items[ph]}

		adriver.items[ph] = this;
		this.ph = ph;
		this.p = p;

		this.reply = {};
		this.prm = p.title ? adriver.parseJSON(p.title) : {};
		adriver.extend(this.prm, prm, {ph: ph});
		this.className = p.className.match(/\w+\b/);

		this.loadCompleteQueue = new adriver.queue();
		this.domReadyQueue = new adriver.queue(adriver.isDomReady);

		var my = this;
		adriver.onDomReady(function(){my.domReady()});
		if (!defer) this.load();
		return this;
	}else{
		return arguments.length ? adriver.items[ph] : adriver.items;
	}
}

adriver.loadScript = function(req){
	try {
		req = req.replace(/!\[rnd\]/,Math.round(Math.random()*10000000));
		var head = document.getElementsByTagName("head").item(0);
		var s = document.createElement("script");
		s.setAttribute("type", "text/javascript");
		s.setAttribute("charset", "windows-1251");
		s.setAttribute("src", req);
		s.onreadystatechange = function(){if (/loaded|complete/.test(this.readyState))head.removeChild(s)};
		s.onload = function (e) {head.removeChild(s)};
		head.insertBefore(s, head.firstChild);
	}catch(e){}
}

adriver.extend = function (){
	var l = arguments[0];
	for (var i = 1, len = arguments.length; i<len; i++){
		var r = arguments[i];
		for (var j in r){
			if(r.hasOwnProperty(j)){
				if (r[j] instanceof Object){if(l[j]) {adriver.extend(l[j], r[j]);}else{l[j] = adriver.extend(r[j] instanceof Array ? [] : {}, r[j]);}}else{l[j] = r[j];}
			}
		}
	}
	return l
}

adriver.extendL = function (l, r){for(var i in l){if (l.hasOwnProperty(i) && r.hasOwnProperty(i)) l[i] = r[i]}; return l}

adriver.toQueryString = function (o, delimiter, assign) {
	delimiter = delimiter || "&";
	assign = assign || "=";
	var l = [];
	for (var i in o){if (o.hasOwnProperty(i)) l.push (i + assign + o[i])}
	return l.join(delimiter)
}

adriver.parseJSON = function (text){
	var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
	if (cx.test(text)) {text = text.replace(cx, function (a) {return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)})}
	if (!(/^\s*\{.*\}\s*$/).test(text)) text = "{" + text + "}";
	text = text.replace(/'/g,"\"");

	return /^[\],:{}\s]*$/.
		test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").
		replace(/\w+(?=\s+|:)|"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").
		replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ? eval("(" + text + ")") : {};
}


adriver.prototype = {
	isLoading : false,

	load : function (){
		try {
			if (!this.isLoading){
				this.isLoading = true;
				var req = adriver.extend({}, adriver.defaults, this.prm);
				adriver.loadScript(adriver.redirectHost + "/cgi-bin/merle.cgi?rnd=![rnd]&" + adriver.toQueryString(req));
			}
		}catch(e){}
		return this;
	},

	reload: function (){
		this.reset();
		this.load();
		return this;
	},

	onLoadComplete : function (f) {
		this.loadCompleteQueue.push(f);
		return this;
	},

	loadComplete : function (){
		this.isLoading = false;
		this.loadCompleteQueue.execute();
		return this;
	},

	onDomReady : function (f) {
		this.domReadyQueue.push(f);
		return this;
	},

	domReady : function (){
		this.domReadyQueue.execute();
		return this;
	},

	reset : function (){
		this.loadCompleteQueue.flush();
		this.domReadyQueue.flush(adriver.isDomReady);
		this.isLoading = false;
		return this;
	}
}

adriver.onDomReady = function (f){
	adriver.domReadyQueue.push(f);
}

adriver.onBeforeDomReady = function (f){
	adriver.domReadyQueue.unshift(f);
}

adriver.domReady = function(){
	adriver.isDomReady = true;
	adriver.domReadyQueue.execute();
}


adriver.setDefaults = function (defaults){adriver.extend(adriver.defaults, defaults)}
adriver.setOptions = function (options){adriver.extend(adriver.options, options)}
adriver.setPluginPath = function(path){adriver.extend(adriver.pluginPath, path)}


adriver.queue = function (flag){ this.q = []; this.flag = flag ? true: false }

adriver.queue.prototype = {
	push : function (f){this.flag ? f() : this.q.push(f)},
	unshift : function (f){this.flag ? f() : this.q.unshift(f)},
	execute : function (flag){var f; var undefined; while (f = this.q.shift()) f(); if (flag == undefined) flag=true; this.flag = flag ? true : false},
	flush : function (flag){this.q.length = 0; this.flag = flag ? true: false}
}



adriver.start = function (){
	adriver.version = "2.0";
	adriver.items = {};
	adriver.defaults = {tail256: (document.referrer ? escape(document.referrer) : 'unknown')};
	adriver.options = {};
	adriver.plugins = {};
	adriver.pluginPath = {};
	adriver.redirectHost = "http://ad.adriver.ru";
	adriver.defaultMirror = "http://content.adriver.ru";
	adriver.isDomReady = false;
	adriver.domReadyQueue = new adriver.queue();

	adriver.checkDomReady(adriver.domReady);
}


adriver.checkDomReady = function(f){
	try {
		var d = document, oldOnload = window.onload;
		if (/WebKit/i.test(navigator.userAgent)) {(function(){/loaded|complete/.test(d.readyState) ? f() : setTimeout (arguments.callee, 100)})()}
		else if (d.addEventListener) {d.addEventListener("DOMContentLoaded", f, false)}
		else if (d.all && !window.opera){
			document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
			document.getElementById("__onDOMContentLoaded").onreadystatechange = function(){if (this.readyState == "complete" ) { f() }}
		}
		window.onload = function(){if(oldOnload) oldOnload(); f()}
	} catch (e){}
}


adriver.start();

//============optional components=================//
searchlang = 'ru';

function newdollar(id) {return (document.all)?document.all[id]:document.getElementById(id)}


UnPortal = {};
UnPortal.lang = 'ru';
UnPortal.localize = function (msg,args) {
 var strings = this.messages[msg];
 if (!strings) return msg;
 var tmpl = strings[this.lang];
 if (!tmpl) tmpl = strings['ru'];
 return typeof(tmpl) == 'function' ? tmpl(msg) : tmpl;
}
var Ajax=new Object();
Ajax.JSONP=function(url){
	var scrpt=document.createElement('SCRIPT');
	scrpt.src=url;
	newdollar('for-json-p').appendChild(scrpt);
	}
Ajax.onSuccess=function(){}
Ajax.onFailure=function(){}
Ajax.startPreload=function(){}
Ajax.stopPreload=function(){}

Ajax.Initialize=function(url,method) {
	try {// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		try {// Internet Explorer
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				Ajax.onFailure();
			}
		}
	}
xmlHttp.onreadystatechange=function() {
	switch(xmlHttp.readyState) {
		case 1 :
			Ajax.startPreload();
			break;
		case 4 :
			Ajax.stopPreload();
			Ajax.onSuccess();
			break;
		}
	}
method=(method)?method:"GET";
xmlHttp.open(method,url,true);
xmlHttp.send(null);
}

Ajax.response=function() {return eval('('+xmlHttp.responseText+')');}

/* detect user OS */
var isUserOSWin = (/windows|win32/i).test(navigator.userAgent);
var isUserOSMac = (/macintosh/i).test(navigator.userAgent);

/* detect user lang */
var userLng = (navigator.language) ? navigator.language.substring(0,2) : navigator.userLanguage.substring(0,2);

var JobLang;

function CityChange(cityid, failure) {
rndDate = new Date();
Ajax.startPreload=function() {
	newdollar('cityPreload').innerHTML='<img src="'+base_url+'img/ajax-loader-o.gif">';
	//newdollar('jobsCont').style.visibility='hidden';
	}
Ajax.stopPreload=function() {
	newdollar('cityPreload').innerHTML='';
	//newdollar('jobsCont').style.visibility='visible';
	}
Ajax.onSuccess=function() {
	newdollar('cityholder').innerHTML=Ajax.response().txt;
	newdollar('b_city').style.display = 'block';
	}
Ajax.onFailure=function() {eval(failure);}
Ajax.Initialize(base_url+'get_ajax.php?connector_type=9&city_region_id='+cityid+'&rnd='+rndDate);
}


var AdSys = {};

// first load all banners

AdSys.init = function() {
new adriver.Plugin.require("old.adriver").onLoadComplete(function(){
    adriver.onDomReady(function(){
		adriver_728x90();
		adriver_300x250();
		adriver_240x60();
		adriver_420x30();
		adriver_300x100();
		//adriver_aukro_210x150();
	})
});
};
function checkUpdateInfo() {
    var nowTime = new Date();
    setInterval(getLoginBox, Delays.freemailUserDataRefresh);
    DetectEvent.lastTime = nowTime.getTime();
}

function getRadioValue(radioN) {
    for(i=0;i<radioN.length;i++) {
        if (radioN[i].checked == true) {
            return radioN[i].value;
        }
    }
}

function check_search(obj) {
    if (obj.elements['q'].value!='') {
	if (getRadioValue(obj.elements['engine'])=='2') { 
	  params_search='text=' + encodeURIComponent(obj.elements['q'].value) + '&searchid=265753';
	}
	else {
	  params_search='cx=011968849859039356281%3An-vaebjbh3a&cof=FORID%3A10&ie=UTF-8&q='+ encodeURIComponent(obj.elements['q'].value) + '&sa=%CF%EE%E8%F1%EA&siteurl=%2Fwork%2Fyooouknow.com%2Fsearch.html';
	}
        window.open(
            base_url +
            'search.php?engine=' + getRadioValue(obj.elements['engine']) +
            '&' + params_search
        );
        return false;
    }else{
        alert((searchlang === 'ru')?'Введите пожалуйста слово для поиска!':'Введіть будь ласка слово для пошуку!');
        return false;
    }
}

/* portal head block */
/* ------------- if IE ------------- */
ie6 = /msie|MSIE 6/.test(navigator.userAgent);
/* ---------- hover elements in IE -------------- */
function hoverEl(el){el.firstChild.style.background = '#3366cc';el.style.color= '#ffffff';}
function outEl(el){el.firstChild.style.background = "#ffffff";el.style.color= '#000000';}

// auto suggest for search string
var search_complite = {};
search_complite.rtimer = null;
search_complite.gtimer = null;
search_complite.engine = '';
search_complite.setEngine = function(engine) {
	document.f.q.value = document.f.q.value;
    search_complite.engine = engine;
    search_complite.changeForm();
}
search_complite.JSONP = function(url) {
    var scrpt=document.createElement('SCRIPT');
    if(search_complite.engine == 'jooble')
    scrpt.charset = 'windows-1251'; // set encode for yandex, because they use windows-1251, other use utf-8
	scrpt.src=url;
	newdollar('for-json-p').appendChild(scrpt);
}
search_complite.str_results = function() {
    if(typeof searchlang != 'undefined' && searchlang == 'uk')
        return 'результатів';
    return 'результатов';
}
search_complite.changeForm = function() {
    //search_complite.engine ? '' : search_complite.setEngine('yandex');
    for (var i=0, tabsNum = newdollar('search-tabs').childNodes.length; i<tabsNum; i++) {
        if(newdollar('search-tabs').childNodes[i].className && newdollar('search-tabs').childNodes[i].className.toString().indexOf('tab-s')!=-1)
            newdollar('search-tabs').childNodes[i].className = 'tab';
    }

	if(search_complite.engine){
    newdollar('tab-' + search_complite.engine).className = 'tab tab-s';
    newdollar('engine-'+search_complite.engine).checked = 'checked';
	}

    if(search_complite.selectedText) {
        document.f.q.value = search_complite.selectedText;
    }
    if(search_complite.engine == 'google') {
        document.f.search_query.value = '';
    }
    else if(search_complite.engine == 'yandex') {
        if(document.f.search_query) document.f.search_query.value = document.f.q.value;
    } else {
        document.f.search_query.value = '';
    }
}
search_complite.complitestring = function(q) {
    search_complite.hideresults();
    document.f.q.value = q;
    search_complite.changeForm();
    document.f.submit();
}
search_complite.escapeQuote = function(str) {
    return (str+'').replace(/([\\'])/g, "\\$1"); // escape quots
}
search_complite.autocomplite = function(el, evt) {
    var keyCode =
        document.layers ? evt.which :
        document.all ? event.keyCode :
        document.getElementById ? evt.keyCode : 0;
    if(keyCode == 12 || keyCode == 27 || keyCode == 40 || keyCode == 38) { // don't need request new data
        return true;
    }
    search_complite.selected = null;
    search_complite.rowNum = 0;
    clearTimeout(search_complite.rtimer);
    search_complite.gtimer = setTimeout(function() {
        var q = el.value;
        if(q == '') {
            setTimeout(function(){search_complite.hideresults();},500);
        } else {
            var queryDelay = 100;
            if(typeof searchlang == 'undefined') searchlang = 'ru';
            var qurl = 'http://clients1.google.com/complete/search?hl='+searchlang+'&q='+q;
            /*
            if(search_complite.engine == 'google') {
                qurl = 'http://clients1.google.com/complete/search?hl='+searchlang+'&q='+q;
            } else if(search_complite.engine == 'yandex') {
                qurl = 'http://suggest.yandex.ru/suggest-ya.cgi?ct=text/html&part='+q+'&v=2';
            } else if(search_complite.engine == 'rambler') {
                qurl = 'http://nova.rambler.ru/suggest?callback=suggest.apply&query='+q;
            } else if(search_complite.engine == 'yahoo') {
                qurl = 'http://sugg.search.yahoo.net/sg/?output=fxjsonp&nresults=10&command='+q;
            }
            */
            if(search_complite.engine == 'jooble') {
               qurl = 'http://jooble.com.ua/Handlers/SeoQueryHintJson.ashx?query='+escape(q);
            }

            search_complite.rtimer = setTimeout(function(){search_complite.JSONP(qurl);},queryDelay);
        }
    }, 50);
}
search_complite.unhideresults = function() {
    if(newdollar('search-wrap')) newdollar('search-wrap').style.zIndex = '700';
    if(newdollar('search-wrap2')) newdollar('search-wrap2').style.zIndex = '700';
    newdollar('autocomplite').style.display = '';
}
search_complite.hideresults = function() {
    clearTimeout(search_complite.rtimer);
    clearTimeout(search_complite.gtimer);
    if(newdollar('search-wrap')) newdollar('search-wrap').style.zIndex = '100';
    if(newdollar('search-wrap2')) newdollar('search-wrap2').style.zIndex = '10';
    newdollar('autocomplite').style.display = 'none';
    search_complite.userText = document.f.q.value;
    search_complite.startSuggest = false;
}
search_complite.reshtml = '';
search_complite.rowNum = 0;
search_complite.userText = '';
search_complite.selectedText = '';
search_complite.buildRow = function(data) {
    var name = data[0] || '';
    if(name == '') return;
    //var num = data[1] || '';
    var num = '';
    search_complite.rowNum++;
    if(search_complite.selected && search_complite.rowNum == search_complite.selected) {
        var className = 'res-selected';
        search_complite.selectedText = name;
    } else {
        var className = '';
    }
    var nameClass = 'long';
    if(num != '') nameClass = 'short';
	if(ie6)hover = 'onmouseover="hoverEl(this);return false;" onmouseout="outEl(this);return false;"';
	else hover = '';
    search_complite.reshtml +='<tr class="'+className+'" onclick="search_complite.complitestring(\''+search_complite.escapeQuote(name)+'\');"'+hover+'><td class="name"><span class="'+nameClass+'">'+name+'</span></td><td class="res">'+num+'</td></tr>';
}
search_complite.buildResults = function() {
    search_complite.selectedText = '';
    search_complite.reshtml = '';
    search_complite.rowNum = 0;
    if(search_complite.data.length == 0)
        return;
    for (var i=0,len = search_complite.data.length;i<len;i++) {
        search_complite.buildRow(search_complite.data[i]);
    }
    newdollar('autocomplite').innerHTML = '<table cellpadding="0" cellspacing="0" border="0">' + search_complite.reshtml + '</table>';
    search_complite.unhideresults();
}
search_complite.startSuggest = false;
search_complite.selected = null;
search_complite.checkArrows = function(field, evt) {
    var keyCode =
        document.layers ? evt.which :
        document.all ? event.keyCode :
        document.getElementById ? evt.keyCode : 0;
    switch(keyCode) {
        case 12: // key "Enter"
            search_complite.userText = document.f.q.value;
            if(search_complite.selectedText)
                document.f.q.value = search_complite.selectedText;
            break;
        case 27: // key "Esc"
            document.f.q.value = search_complite.userText;
            search_complite.hideresults();
            break;
        case 40: // key "Arrow Down"
            if(!search_complite.startSuggest)
                search_complite.userText = document.f.q.value;
            search_complite.startSuggest = true;
            if(search_complite.rowNum == 0 && search_complite.selected + 1 <= 10 ||
               search_complite.rowNum > 0 && search_complite.selected + 1 <= 10 && search_complite.selected + 1 <= search_complite.rowNum) {
                search_complite.selected = search_complite.selected + 1;
            } else {
                search_complite.selected = 0;
                if(search_complite.userText) {
                    document.f.q.value = search_complite.userText;
                }
                search_complite.buildResults();
                return;
            }
            search_complite.buildResults();
            document.f.q.value = search_complite.selectedText;
            break;
        case 38: // key "Arrow Up"
            if(search_complite.selected == 0 && search_complite.rowNum) {
                search_complite.selected = search_complite.rowNum;
            } else if(search_complite.selected - 1 > 0) {
                search_complite.selected = search_complite.selected - 1;
            } else {
                search_complite.selected = 0;
                search_complite.buildResults();
                if(search_complite.userText) {
                    document.f.q.value = search_complite.userText;
                }
                return;
            }
            search_complite.buildResults();
            document.f.q.value = search_complite.selectedText;
            break;
    }
    return true;
}
search_complite.data = []; // array of suggested words and counts
// yahoo
function fxsearch(response) {
    search_complite.data = [];
    if (typeof response != 'undefined' && response && response[1]) {
        for (var i=0,ilength=response[1].length;i<ilength;i++) {
            if(typeof response[1][i] == 'string')
                search_complite.data.push([response[1][i],null]);
        }
    }
    if(search_complite.data.length==0)
        search_complite.hideresults();
    else
        search_complite.buildResults();
}
// yandex & rambler
var suggest = {};
suggest.apply = function(response, data) {
    search_complite.data = [];
    if(typeof data != 'undefined') {
        for (var i=0,ilength=data.length;i<ilength;i++) {
            if(typeof data[i] == 'string') {
                search_complite.data.push([data[i],null])
            } else if(typeof data[i] != 'undefined') {
                if(data[i][0] && data[i][1])
                    search_complite.data.push([data[i][0],data[i][1]+' '+search_complite.str_results()]);
                else if(data[i][0])
                    search_complite.data.push([data[i][0],null]);
            }
        }
    }
    if(search_complite.data.length==0)
        search_complite.hideresults();
    else
        search_complite.buildResults();
}
// google
var google = {};
google.ac = {};
google.ac.h = function(response) {
    search_complite.data = [];
    for (var i=0,ilength=response.length;i<ilength;i++) {
        for (var j=0,jlength=response[i].length;j<jlength;j++) {
            if(typeof response[i][j] == 'object')
                search_complite.data.push([response[i][j][0],response[i][j][1]]);
        }
    }
    if(search_complite.data.length==0)
        search_complite.hideresults();
    else
        search_complite.buildResults();
}

/* end portal head block */

