var lang_arr = "";
var get_data = new Array();
var lngth = 0;
var lg = GetCookie('icq_lang');
if(lg==null)
{
	lg='en';
}
function get_lang_rs()
{
	var he_text = new Array('חיפושים אחרונים', 'החיפושים האחרונים שלך', 'אפשרות שמירת מילות החיפוש האחרונות אינה פעילה. כדי להפעיל אותה לחץ על הפעל.', 'כבה', 'הפעל', 'נקה הכל', 'כיבוי אפשרות שמירת מילות החיפוש גם תמחוק את מילות החיפוש האחרונות שלך. <br>האם אתה בטוח שאתה רוצה להמשיך?', 'האם אתה בטוח שאתה רוצה לנקות את מילות החיפוש האחרונות?', 'כן', 'לא', 'היום', 'אתמול', 'מחק');
	var en_text = new Array('Recent Searches', 'Your recent web searches','The Recent Searchs feature is currently turned off. To see your recent searches, click Turn On.', 'Turn Off','Turn On',  'Clear All','Turning off this feature will also clear your recent searches.<br>Are you sure you want to continue?', 'Are you sure you want to clear your recent searches?', 'Yes', 'No', 'Today', 'Yesterday', 'Delete');
	var de_text = new Array('Vergangene Suchbegriffe', 'Deine letzten Websuchen', 'Speichern der Suchbegriffe ist momentan deaktiviert. Um deine letzten Suchbegriffe zu sehen, klicke auf Aktivieren.', 'Deaktivieren', 'Aktivieren', 'Alles l&#246;schen', 'Durch das deaktivieren dieses Features, gehen deine vergangenen Sucheingaben verloren. <br>Bist du sicher dass du fortfahren willst?', 'Bist du sicher dass du deine vergangenen Sucheingaben l&#246;schen willst?', 'Ja', 'Nein', 'Heute', 'Gestern', 'l&ouml;schen Sie');
	var bg_text = new Array('Последни търсения', 'Вашите последни търсения на web', 'Функцията за последните търсения е изключена в момента. За да видите резултатите от последните си търсения, щракнете върху Включи..', 'Изключи', 'Включи', 'Изчисти всички', 'Изключването на тази функция ще изчисти резултатите от вашите последни търсения. Наистина ли искате да продължите?', 'Наистина ли искате да изчистите Последни търсения?', 'Да', 'Не', 'днес', 'вчера', 'Изтрий');
	var cz_text = new Array('Posledn&iacute; vyhled&aacute;v&aacute;n&iacute;', 'Posledn&iacute; vyhled&aacute;v&aacute;n&iacute; na webu', 'Funkce posledn&iacute;ch vyhled&aacute;v&aacute;n&iacute; je v nyn&iacute; vypnut&aacute;. Chcete-li zobrazovat posledn&iacute; vyhled&aacute;v&aacute;n&iacute;, klepn&#X11b;te na tla&#X10d;&iacute;tko Zapnout.', 'Vypnout', 'Zapnout', 'Vy&#X10d;istit v&#X161;e','Vypnut&iacute;m t&eacute;to funkce tak&eacute; vyma&#X17e;ete posledn&iacute; vyhled&aacute;v&aacute;n&iacute;.<br>Opravdu chcete pokra&#X10d;ovat?','Opravdu chcete vymazat posledn&iacute; vyhled&aacute;v&aacute;n&iacute;?', 'Ano', 'Ne', 'dnes', 'v&#X10d;era', 'škrtnout');
	var es_text = new Array('Búsquedas Recientes', 'Sus recientes web búsquedas', 'La aplicación Búsquedas Recientes está actualmente apagada. Para ver sus búsquedas recientes haga clic en Encender.', 'Apagar', 'Encender', 'Limpiar', 'Al apagar esta aplicación también Borre sus búsquedas recientes <br>¿Está seguro que desea continuar?', '¿Está seguro que desea borrar sus Búsquedas Recientes?', 'Si', 'No', 'hoy', 'ayer', 'Borrar');
	var fr_text = new Array('Recherches récentes', 'Vos recherches récentes sur web', 'La fonctionnalité Recherches récentes est actuellement désactivée. Pour visualiser vos recherches récentes, cliquez sur Activer.', 'Désactiver', 'Activer', 'Tout effacer', 'La désactivation de cette fonctionnalité effacera également vos recherches récentes. <br>Etes-vous sûr de vouloir continuer ?', 'Etes-vous sûr de vouloir effacer vos recherches récentes?', 'Qui', 'Non', "aujourd'hui", 'hier', 'Supprimer');
	
	var it_text = new Array('Ricerche recenti', 'Le tue ricerche recenti web', 'TRicerche recenti è correntemente disattivato. Per vedere le tue ricerche recenti, clicca Attiva.', 'Spegni', 'Accendi', 'Cancella tutto', 'Se si disattiva questa funzione, le ricerche recenti verranno cancellate. <br>Desideri continuare?', 'Desideri cancellare ricerche recenti?', 'Si', 'No', 'oggi', 'ieri', 'Elimina');
	var ru_text = new Array('История поиска', 'Список ваших последних запросов', 'Функция отображения истории поиска отключена. Нажмите кнопку "включить", чтобы увидеть список ваших последних запросов', 'Отключить', 'Включить', 'Очистить', 'Отключив эту функцию, вы также очистите историю поиска. <br>Вы уверены, что хотите продолжить?', 'Вы уверены, что хотите удалить историю поиска?', 'Да', 'Нет', 'сегодня', 'вчера', 'Удалить');
	var sk_text = new Array('Ostatné hľadania', 'Vaše ostatné web hľadania', 'Funkcia Ostatné hľadania je v tejto chvíli vypnutá. Ak chcete zobraziť ostatné hľadania, kliknite na položku Zapnúť.', 'Vypnúť', 'Zapnúť', 'Vymazať všetko', 'TPo vypnutí tejto funkcie sa taktiež vymažú ostatné hľadania. <br>Naozaj chcete pokračovať?', 'Naozaj chcete pokračovať ostatné hľadania?', 'Áno', 'Nie', 'dnes', 'včera', 'Odstrániť');
	var tr_text = new Array('En Son Yapılan Aramalar', 'En son yaptığınız web aramalar', 'En Son Yapılan Aramalar özelliği şu anda kapalı. En son yaptığınız aramaları görmek için Aç düğmesine tıklayın.', 'Kapat', 'Aç', 'Hepsini Temizle', 'Bu özelliğin kapatılması aynı zamanda en son yaptığınız aramaları da silecektir. <br>Devam etmek istediğinizden emin misiniz?', 'Temizlemek istediğinizden emin misiniz Yapılan Aramalar', 'Evet', 'Hayır', 'bugün', 'dün', 'Sil');
	var ua_text = new Array('Останні пошуки', 'Останні пошуки web', 'Функцію "Останні пошуки" на цей час вимкнено. Щоб переглянути ваші останні пошуки, натисніть "Увімкнути"', 'Вимкнути', 'Увімкнути', 'Очистити все', 'У разі вимкнення цієї функції також буде очищено останні пошуки. <br>Справді продовжити?', 'Справді очистити останні пошуки?', 'Так', 'Ні', 'сьогодн', 'учора', 'Видалити');
	switch (lg)
	{
		case 'en':
			return en_text;
			break;
		case 'de':
			document.getElementById('sep').style.display = "none";
			document.getElementById('sep1').style.display = "none";
			return de_text;
			break;
		case 'bg':
			document.getElementById('sep').style.display = "none";
			document.getElementById('sep1').style.display = "none";
			return bg_text;
			break;
		case 'cz':
			return cz_text;
			break;
		case 'es':
			return es_text;
			break;
		case 'fr':
			document.getElementById('sep').style.display = "none";
			document.getElementById('sep1').style.display = "none";
			return fr_text;
			break;
		case 'it':
			return it_text;
			break;
		case 'ru':
			return ru_text;
			break;
		case 'sk':
			return sk_text;
			break;
		case 'tr':
			return tr_text;
			break;
		case 'ua':
			return ua_text;
			break;
		case 'he':
			document.getElementById('alrt').style.direction = "rtl";
			document.getElementById('alrt1').style.direction = "rtl";
			document.getElementById('alrt-b').style.direction = "rtl";
			document.getElementById('alrt1-b').style.direction = "rtl";
			document.getElementById('rs-2').style.direction = "rtl";
			document.getElementById('sptz1').src="http://c.icq.com/search/img/spitz_he_i.gif";
			document.getElementById('sptz2').src="http://c.icq.com/search/img/spitz_he_i.gif";
			document.getElementById('sptz1-b').src="http://c.icq.com/search/img/spitz_he.gif";
			document.getElementById('sptz2-b').src="http://c.icq.com/search/img/spitz_he.gif";
			return he_text;
			break;
		default:
			return en_text;
			break;
	}
}
function get_rs_on_cook()
{
	var rs_on = GetCookie('rsn_on');
	if(rs_on==null){
		rs_on="on";
		set_rs_on_cook('on');
	}
	return rs_on;
}
function set_rs_on_cook(val)
{
	cookieval = val=='off' ? 'off' : 'on';
	SetCookie('rsn_on', cookieval, getrs_date(), '/', '.icq.com');
}
function get_rs_data_cook()
{
	var data = GetCookie("r_shweb");
	var s_data = new Array();
	var sa_data = new Array();
	var j=0;
	if(data!=null){
		s_data = unserialize(data);
	}
	return s_data;
}
/*****************************************************/
function unserialize ( inp ) {
    error = 0;
    if (inp == "" || inp.length < 2) {
        errormsg = "input is too short";
        return;
    }
    var val, kret, vret, cval;
    var type = inp.charAt(0);
    var cont = inp.substring(2);
    var size = 0, divpos = 0, endcont = 0, rest = "", next = "";

    switch (type) {
    case "N": // null
        if (inp.charAt(1) != ";") {
            errormsg = "missing ; for null";
        }
        // leave val undefined
        rest = cont;
        break;
    case "b": // boolean
        if (!/[01];/.test(cont.substring(0,2))) {
            errormsg = "value not 0 or 1, or missing ; for boolean";
        }
        val = (cont.charAt(0) == "1");
        rest = cont.substring(2);  //changed...
        break;
    case "s": // string
        val = "";
        divpos = cont.indexOf(":");
        if (divpos == -1) {
            errormsg = "missing : for string";
            break;
        }
        size = parseInt(cont.substring(0, divpos));
        if (size == 0) {
            if (cont.length - divpos < 4) {
                errormsg = "string is too short";
                break;
            }
            rest = cont.substring(divpos + 4);
            break;
        }
        if ((cont.length - divpos - size) < 4) {
            errormsg = "string is too short";
            break;
        }
        if (cont.substring(divpos + 2 + size, divpos + 4 + size) != "\";") {
            errormsg = "string is too long, or missing \";";
        }
        val = cont.substring(divpos + 2, divpos + 2 + size);
        rest = cont.substring(divpos + 4 + size);
        break;
    case "i": // integer
    case "d": // float
        var dotfound = 0;
        for (var i = 0; i < cont.length; i++) {
            cval = cont.charAt(i);
            if (isNaN(parseInt(cval)) && !(type == "d" && cval == "." && !dotfound++)) {
                endcont = i;
                break;
            }
        }
        if (!endcont || cont.charAt(endcont) != ";") {
            errormsg = "missing or invalid value, or missing ; for int/float";
        }
        val = cont.substring(0, endcont);
        val = (type == "i" ? parseInt(val) : parseFloat(val));
        rest = cont.substring(endcont + 1);
        break;
    case "a": // array
        if (cont.length < 4) {
            errormsg = "array is too short";
            return;
        }
        divpos = cont.indexOf(":", 1);
        if (divpos == -1) {
            errormsg = "missing : for array";
            return;
        }
        size = parseInt(cont.substring(1*divpos, 0));  //changed...
        cont = cont.substring(divpos + 2);
        val = new Array();
        if (cont.length < 1) {
            errormsg = "array is too short";
            return;
        }
        for (var i = 0; i + 1 < size * 2; i += 2) {
            kret = unserialize(cont, 1);
            if (error || kret[0] == undefined || kret[1] == "") {
                errormsg = "missing or invalid key, or missing value for array";
                return;
            }
            vret = unserialize(kret[1], 1);
            if (error) {
                errormsg = "invalid value for array";
                return;
            }
            val[kret[0]] = vret[0];
            cont = vret[1];
        }
        if (cont.charAt(0) != "}") {
            errormsg = "missing ending }, or too many values for array";
            return;
        }
        rest = cont.substring(1);
        break;
    case "O": // object
        divpos = cont.indexOf(":");
        if (divpos == -1) {
            errormsg = "missing : for object";
            return;
        }
        size = parseInt(cont.substring(0, divpos));
        var objname = cont.substring(divpos + 2, divpos + 2 + size);
        if (cont.substring(divpos + 2 + size, divpos + 4 + size) != "\":") {
            errormsg = "object name is too long, or missing \":";
            return;
        }
        var objprops = unserialize("a:" + cont.substring(divpos + 4 + size), 1);
        if (error) {
            errormsg = "invalid object properties";
            return;
        }
        rest = objprops[1];
        var objout = "function " + objname + "(){";
        for (key in objprops[0]) {
            objout += "" + key + "=objprops[0]['" + key + "'];";
        }
        objout += "}val=new " + objname + "();";
        eval(objout);
        break;
    default:
        errormsg = "invalid input type";
    }
    return (arguments.length == 1 ? val : [val, rest]);
}
function serialize( inp ) {
    var getType = function( inp ) {
        var type = typeof inp, match;
        if(type == 'object' && !inp)
        {
            return 'null';
        }
        if (type == "object") {
            if(!inp.constructor)
            {
                return 'object';
            }
            var cons = inp.constructor.toString();
            if (match = cons.match(/(\w+)\(/)) {
                cons = match[1].toLowerCase();
            }
            var types = ["boolean", "number", "string", "array"];
            for (key in types) {
                if (cons == types[key]) {
                    type = types[key];
                    break;
                }
            }
        }
        return type;
    };

    var type = getType(inp);
    var val;
    switch (type) {
        case "undefined":
            val = "N";
            break;
        case "boolean":
            val = "b:" + (inp ? "1" : "0");
            break;
        case "number":
            val = (Math.round(inp) == inp ? "i" : "d") + ":" + inp;
            break;
        case "string":
            val = "s:" + inp.length + ":\"" + inp + "\"";
            break;
        case "array":
            val = "a";
        case "object":
            if (type == "object") {
                var objname = inp.constructor.toString().match(/(\w+)\(\)/);
                if (objname == undefined) {
                    return;
                }
                objname[1] = serialize(objname[1]);
                val = "O" + objname[1].substring(1, objname[1].length - 1);
            }
            var count = 0;
            var vals = "";
            var okey;
            for (key in inp) {
				if(inp[key].valueOf().length!=8)
					continue;
                okey = (key.match(/^[0-9]+$/) ? parseInt(key) : key);
                vals += serialize(okey) +
                        serialize(inp[key]);
                count++;
            }
            val += ":" + count + ":{" + vals + "}";
            break;
    }
    if (type != "object" && type != "array") val += ";";
    return val;
}
/******************************************************************************************************/

function load_d()
{
	get_data = get_rs_data_cook();
	load(get_data);
}
String.prototype.space = function()
{
	var str = this.replace(/\+/g, " ");
	str = str.replace(/' '/, "'+'");
	return String(str);
}
String.prototype.unspace = function()
{
	var str = this.replace(/\ /g, "+");
	str = str.replace(/'+'/, "' '");
	return String(str);
}
String.prototype.encodestr = function()
{
	
	return unescape(encodeURIComponent(this));
}
//Array.prototype.clear = function()
function clear(array)
{
	for(var a=0; a<count(array);a++)
	{
		array.shift();
	}
	return array;
}

String.prototype.escapeHTML = function () 
{
	return(
		this.replace(/&/g,'&amp;').                                         
		replace(/>/g,'&gt;').                                           
		replace(/</g,'&lt;').                                           
		replace(/"/g,'&quot;')
	);                                                                      
};
function encode_utf8(s)
{
	return unescape(encodeURIComponent(s));
}
function decode_utf8(s)
{
	x = s.escapeHTML();
	x = escape(x);
	return decodeURIComponent(x);
}
function decode_arr(a)
{
	return decodeURI(escape(a));
}
function count(data)
{
	var data_length=0;
	for (key in data)
	{
		if ( key == 'clear')
			continue;
		data_length++;
	}
	return data_length;
}
function load(data)
{
	lang_arr = get_lang_rs();
	document.getElementById('rs-1-1').innerHTML = lang_arr[0];
	var is_on = get_rs_on_cook();
	var str = "";
	var str_out = new Array;
	var i=0;
	var tmp = "";
	var this_date = "";
	var output_str = "";
	lngth = 0;
	lngth = count(data);
	if(lngth<5)
	{
		document.getElementById('rs-6-1').onclick = function(){rsh_turn_off_alert_rs('open','rs-6-1-p-b');}
		document.getElementById('rs-5-1-1').onclick = function(){rsh_turn_off_alert_rs('open','rs-5-1-p-b');}
	}
	if(is_on=='on')
	{
		if(lngth==0){
			document.getElementById('rs-2').style.display = "block";
			document.getElementById('rs-2').innerHTML = lang_arr[1];
			document.getElementById('rs-6').style.display = "none";
		}
		else
		{
			document.getElementById('rs-2').style.display = "none";
		}
		document.getElementById('rs-5-1-1').innerHTML = lang_arr[3];
		document.getElementById('rs-6-1').innerHTML = lang_arr[5];
		document.getElementById('rs-6-1').style.display = "block";
		document.getElementById("rch").innerHTML='';
		if(lngth>0)
		{
			var rev_arr = new Array();
			var j=0;
			for(key in data)
			{
				if(data[key].valueOf().length!=8)
					continue;
				if(lngth==10){
					lngth--;
					continue;
				}
				tmp = key;
				tmp = decode_utf8(tmp);
				str_out[j] = '<div class="rs-3-1-i">';
				str_out[j] += '<div class="rs-3-1-1">';
				str_out[j] += '<a href="javascript:del_rs(\'rs_'+i+'\');" onclick="del_rs(\'rs_'+i+'\');" class="rs-3-1-1-link">';
				str_out[j] += '<img src="http://c.icq.com/search/img/recent_delete.gif" width="10" height="14" border="0" align="absmiddel" alt="'+lang_arr[12]+'" title="'+lang_arr[12]+'" />';
				str_out[j] += '</a></div>';
				str_out[j] += '<div class="rs-3-1-2"><a  id="rs_'+i+'" href="http://search.icq.com/search/results.php?q='+tmp+'&ch_id=rsrh" target="_top" title="'+tmp.space()+'">'+tmp.space()+'</a></div>';
					
				i++;
				if(data[key]==curr_date(0))
				{
					this_date = lang_arr[10];
				}
				else if(data[key]==curr_date(1))
					this_date = lang_arr[11];
				else
					this_date = data[key];
				str_out[j] += '<div class="rs-3-1-3">'+this_date+'</div></div>';
				i++;
				j++;
			}
			for(var m=(lngth-1);m>=0;m--){
				output_str += str_out[m];
			}
			document.getElementById("rch").innerHTML=output_str;
		}
	}
	else
	{
		document.getElementById('rs-2').style.display = "block";
		document.getElementById('rs-2').innerHTML = lang_arr[2];
		document.getElementById('rs-5-1-1').innerHTML = lang_arr[4];
		document.getElementById('rs-6-1').style.display = "none";
		document.getElementById('rch').style.display = "none";
		document.getElementById('rs-5-1-1').onclick = function(){rsh_turn_off_rs('on');}
	}
}
function rsh_turn_off_rs(turnoff)
{
	if(turnoff=='yes')
	{
		DeleteCookie('r_shweb',"/recent_searches", ".icq.com");
		SetCookie("rsn_on", escape('off'), getrs_date(),"/", ".icq.com");
		load(get_data);
		document.getElementById('rs-5-1-p').style.display = 'none';
		document.getElementById('rs-5-1-p-b').style.display = 'none';
		document.getElementById('rs-5-1-1').onclick = function(){rsh_turn_off_rs('on');}
	}
	else if(turnoff=='del')
	{
		SetCookie("r_shweb", "", getrs_date(),"/recent_searches", ".icq.com");
		document.getElementById('rs-6-1').innerHTML.display = "none";
		document.getElementById('rs-6-1-p').style.display = 'none';
		document.getElementById('rs-6-1-p-b').style.display = 'none';
		load_d();
	}
	else if(turnoff=='on')
	{
		SetCookie("rsn_on", escape('on'), getrs_date(),"/", ".icq.com");
		load(get_data);
		document.getElementById('rs-5-1-1').onclick = function(){lngth>5?rsh_turn_off_alert_rs('open','rs-5-1-p'):rsh_turn_off_alert_rs('open','rs-5-1-p-b');}
		load_d();
	}
}
function rsh_turn_off_alert_rs(stat, id)
{
	var stat = stat;
	if(stat=='open'){
		document.getElementById('rs-5-1-p').style.display = 'none';
		document.getElementById('rs-6-1-p').style.display = 'none';
		document.getElementById('rs-5-1-p-b').style.display = 'none';
		document.getElementById('rs-6-1-p-b').style.display = 'none';
		document.getElementById(id).style.display = 'block';
		document.getElementById(id+"-3-txt").innerHTML = id=='rs-5-1-p'||id=='rs-5-1-p-b'?lang_arr[6]:lang_arr[7];
		document.getElementById(id+"-yes").innerHTML = lang_arr[8];
		document.getElementById(id+"-no").innerHTML = lang_arr[9];
	}
	else if(stat=='close')
		document.getElementById(id).style.display = 'none';
}
function unescapeHTML(html) {   
	var htmlNode = document.createElement("DIV");   
	htmlNode.innerHTML = html;   
	if(htmlNode.innerText)      
	return htmlNode.innerText; // IE  
	return htmlNode.textContent; // FF
}
function del_rs(key)
{
	document.getElementById('rs-5-1-p').style.display = 'none';
	document.getElementById('rs-6-1-p').style.display = 'none';
	document.getElementById('rs-5-1-p-b').style.display = 'none';
	document.getElementById('rs-6-1-p-b').style.display = 'none';
	var str = document.getElementById(key).innerHTML;
	new_obj = new Array();
	for (ar_key in get_data)
	{
		if(encode_utf8(unescapeHTML(str.unspace()))==ar_key)
			continue;
		
		new_obj[ar_key] = get_data[ar_key];
	}
	
	get_data = new_obj;
	rewrite(get_data);
	load(get_data);
}
function rewrite(data)
{
	var new_str="";
	var pre="";
	new_str = serialize(data);
	DeleteCookie("r_shweb","/recent_searches", ".icq.com");
	SetCookie("r_shweb", new_str, getrs_date(),"/recent_searches", ".icq.com");
}
function getrs_date()
{
	var gl_expireDate = new Date;
	gl_expireDate.setFullYear(gl_expireDate.getFullYear()+1);
	return gl_expireDate;
}
function curr_date(days)
{
	var d=new Date();
	var day=d.getDate()-days;
	if(day<10)
		day = "0"+day;
	var month=d.getMonth() + 1;
	var year=d.getFullYear();
	var syear=year.toString().split("");
	if(month<10)
		month='0'+month;
	return month+"."+day+"."+syear[2]+syear[3];
}