
function dateto(value){
	var monthNames = new Array( 'Января','Февраля','Марта','Апреля','Мая','Июня','Июля','Августа','Сентября','Октября','Ноября','Декабря');
	var dayNames = new Array( 'Воскресенье','Понедельник','Вторник','Среда','Четверг','Пятница','Суббота');
	var now = new Date(value);
	thisYear = now.getFullYear();
	hour = now.getHours();
	if(hour<10){hour = '0'+hour;}
	min = now.getMinutes();
	if(min<10){min = '0'+min;}
	sec = now.getSeconds();
	if(sec<10){sec = '0'+sec;}
	return(dayNames[now.getDay()] + ', ' + now.getDate() + ' ' + monthNames[now.getMonth()] + ' ' + thisYear + ' года в '+hour+':'+min+':'+sec);
}
function s_to_m(v){
	d = v/60;
	min = Math.ceil(d);
	sec = v-(min*60);
	if(sec<0){
		min = min-1; sec = v-(min*60);
	}
	if(min<1){
		return(sec+' сек');
	}else{
		return(min+' мин '+sec+' сек');
	}
}
function getCookie(name) {
        var prefix = name + "="
        var cookieStartIndex = document.cookie.indexOf(prefix)
        if (cookieStartIndex == -1)
                return null
        var cookieEndIndex = document.cookie.indexOf(";",
                        cookieStartIndex + prefix.length)
        if (cookieEndIndex == -1)
                cookieEndIndex = document.cookie.length
        return decodeURIComponent(document.cookie.substring(
              cookieStartIndex + prefix.length, cookieEndIndex))
}
//
function cookie_add(q,t){
	var f = "; expires=Wed, 01-Jan-2020 00:00:00 GMT";
	co = getCookie("q");
	if(co){
		var qa = co.split('|*');
		if(qa.length>20){
			qa.pop();
		}
		co2="|*"+co+"|*";
		ghz = co2.replace("|*"+q+"^|"+t+"|*","");
		if(co2==ghz){
			coki = qa.join("|*");
			document.cookie="q="+encodeURIComponent(q)+"^|"+t+"|*"+encodeURIComponent(coki)+f;
		}
	}
	else{
		document.cookie="q="+encodeURIComponent(q)+"^|"+t+f;
	}
}

function get_opt(t){

	co = getCookie(t);
	if(!co || co=="0"){
		window.opt[t] = 0;
	}else{
		window.opt[t] = 1;
	}
}
function get_optv(t,n){
	if(t==0){
		$b('oscroll').checked = true;
	}
	if(n==0){
		$b('odebug').checked = true;
	}
}
function set_opt(t){
	var f = "; expires=Wed, 01-Jan-2020 00:00:00 GMT";
	if(document.getElementById(t).checked == false){
		document.cookie=t+"=1"+f;
		window.opt[t] = 1;
		
	}else{
		document.cookie=t+"=0"+f;
		window.opt[t] = 0;
	}

}
function cookied(){
	document.cookie="q=";
	$("#qs").slideToggle("normal");
}
function cookie_r(){
	coo = getCookie("q");
if(coo){
	all = coo.split('|*');
	var d="";
	for (i=0;i<=all.length-1;i++)
	{
	
	var g="";
		var qa = all[i].split('^|');
		f = qa[1];
		

		if(f!='web'){g="<span> - "+window.tb[f]+"</span>";}else{g='';}
		if(f!='web' && f!='images' && f!='news' && f!='video') {    						    
			f = 'web';
		}
		
		
		d+="<a href='/search:"+f+":"+encodeURIComponent(qa[0])+"' onClick=\"cs('"+qa[0]+"','"+f+"','"+qa[1]+"');return false;\">"+qa[0]+"</a>"+g+"<br />";
	}
	d+="<div align=right><a href='#' style='font-size:11px;color:#9A9A9A' onClick=\"cookied();return false;\">очистить</a></div>";
}else{d = "<span style='font-size:11px'>&nbsp; no searches</span>";}
	$b("qs").innerHTML = d;
	$("#qs").slideToggle("normal");
	
}

function parseUri (str) {
	var str = str.replace("http://",'');
	var urlparts = str.split('/');
	return(urlparts[0]);
};
load = new Image();
load.src="images/load.gif";
img = '<img src="'+load.src+'" height="16" width="16" style="margin-bottom:-3px">';
function Comma(n) {
var b =n;
var str='';
 if (n%1000) str=(n%1000);
 n =Math.round(n/1000);
 if (n%1000) str=(n%1000)+' ths. '+str;
 n =Math.round(n/1000);
 if (n%1000) str=(n%1000)+' mln. '+str;
 n =Math.round(n/1000);
 if (n%1000) str=(n%1000)+' bln. '+str;
 return str;
}
function find(q,s,i,u){
$.ajax({
        url: "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&key=ABQIAAAA9cuS2ToykTODWTgzr5qAuRQxMDBcEALRwwtQ3-ky4PqXSeOE-RSNJ5UfBIDDwMbwsqYZGrr2BtwDtA&q="+encodeURIComponent(q)+" site:"+s+"&rsz=large&callback=GoogleCallback&context=?",
        dataType : "jsonp",
        success: function (data) {
			var result = "";
				        $.each(data.results,
        					function(i, val) {
								if(val.unescapedUrl!=u){
		           					url = val.unescapedUrl.replace('http://', "");
									url = Url.decode(url);
									urlc = url.replace(val.visibleUrl, "");
									if(urlc.length>80){
										url =  url.substr(0,80)+"...";
									}
										urlx = url.replace(/\/$/g,"");
										link = decodeURIComponent(val.url);
		        						result += '<li><a href="'+link+'"  target="_blank" style="font-size:14px">'+val.title+"</a><br /><span>"+val.content+"</span><br /><span style='color:#638696;font-size:12px'>"+filet(val.url)+urlx+"</span></li>";
								}
        					}
        				);

					
					
						if(data.cursor.estimatedResultCount != 'undefined'){
							$b("z"+i).innerHTML="<ul id='ebn'><li style='color:#C36B00'>Всего с сайта <b>"+s+"</b>: "+data.cursor.estimatedResultCount+" страниц &nbsp; &nbsp; <a href='#' onClick=\"show('z"+i+"');return false;\" style='color:#666666'>спрятать</a></li>"+result+"";
							if(data.cursor.estimatedResultCount>8){
								$b("z"+i).innerHTML+="<div align=center><a href='/search:web:"+encodeURIComponent(q)+" site:"+s+"' onClick=\"$b('q').value+=' site:"+s+"';Google(0,false);return false;\" style='color:#666666'>Ещё результаты с "+s+"</a> &nbsp; &nbsp; <a href='#' onClick=\"show('z"+i+"');return false;\" style='color:#666666'>спрятать</a></div><br />";
							}
							$b("z"+i).innerHTML += '</ul>';
							show('z'+i);

						}else{
							$b("z"+i).innerHTML="No more results.";
						}
		}
				
	});
}
function parse_url(url){
    var rgxp=new RegExp("(http\://.+/)([^/]*)\\.([\\w]*)$","i");
    purl=rgxp.exec(url);
    return purl[2]+'.'+purl[3];
}
function gcc(u){
$b("value").innerHTML = img+' считаю...';
$.ajax({
		url: u,
			success: function(data){
				if(data.length>5){
					$b("value").innerHTML = data;
					
				}else{
					$b("value").innerHTML = "Request Erorr!";
						}$("#req").cFadeOut("normal");
			}
		});
}
function Google(start,next) {

	$b('debug').style.display = 'none';
	$b('debug').innerHTML = '';
	var type = $b('type').value;
	var q = $b('q').value;
	var qz = q;
if(q != ""){
 
	var names = '';
	var nextr = $b("nextr");
	var value = $b("value");
	var resv = $b("google");
	var add = $b("add").value;
	var add2 = $b("add2").value;
	var imgs = $b("imgs").value;
	var adp = $b("adp").value;
	var cx = $b("cx").value;
	var hl = $b("hl").value;
	var e = $b("tabx").value;
	
	
	
var not=true;
if(q.match(/^[\d.,]+/)){
	var re = /([\d.,]+|)\s([A-zА-я ]+)\sв\s([A-zА-я ]+)/;
	var mat = q.match(re);
	if(mat){
		var k = /usd|rub|eur|uah|kzt|chf|byr|aud|gbr|dkk|isk|cad|nok|sgd|jpy|gbp|рубл|доллар|валют+|деньг+|евро|зелен|бакс|сша|гривн|тенг|крон|иен|франк|фунт|лира/;
		if(mat[2].match(k) && mat[3].match(k)){
			not=false;
			gcc("/files/cur.php?s="+mat[1]+"&i="+encodeURIComponent(mat[2])+"&v="+encodeURIComponent(mat[3]));
		}
	}
}
if(!q.match(/[А-я]/)){
	if(q.match(/^([0-9.,\(\^\*\/\\%\-\+\)\:\&\;A-z]+)$/) && !q.match(/^([0-9]+)$/)){
		if(q.match(/(abs|acos|acosh|acot|acoth|asin|asinh|atan|atanh|combin |combina|cos|cosh|cot|coth|degrees|even|exp|fact|factdouble|int|iseven|isodd|lcm|lcm_add|ln|log|pi|power|round|sign|sin|sinh|sqrt|sqrtpi|tan|tanh)\(.*\)/)||q.match(/^([0-9.,\(\^\*\/\\%\-\+\)\:\&\;]+)$/)){
			not=false;
			gcc("/files/calc.php?q="+encodeURIComponent(q));
		}
	}
}	
if(q.match(/^перев/)){
var n = q.match(/^перевед(и|и:)\s([А-яA-z\'\"\?\! ]+)/);
var to = "ru";
	if(n){
	$b("value").innerHTML = img+' перевожу...';
	not=false;
		google.language.detect(n[2], function(result) {
	    if (!result.error && result.language) {
			if(result.language == "ru"){to="en";}
				google.language.translate(n[2], result.language, to,
				function(resul) {
		            if (resul.translation) {
						
						$b("value").innerHTML = "<table><tr><td><img src='images/tr.png' height=32 width=32></td><td style='padding-left:10px'><b style='font-size:18px;color:#4D4D4D'>Перевод: <br>  <span style='font-size:14px;color:#6E6E6E'>"+n[2]+" - "+resul.translation+"</b></td></tr></table>";
						$("#req").cFadeOut("normal");
					}
				});
		}	
	    });
	}
}
document.title = q+" - Alwahy Search";
	
	if(not){	
	var highlighted = -1;
	if(add != ""){	q = q+" "+add;	}
	if(add2 != ""){	q = q+" "+add2;	}
	if(imgs != ""){	imgs = "imgsz="+imgs+"&";	}
	if(adp != ""){	q = adp+" "+q;	}
	if(cx != ""){	cx = "cx="+cx+"&";	}
	if(hl != ""){	hl = "hl="+hl+"&lr=lang_"+hl+"&";	}
	
	if(next == true){
		nextr.innerHTML = img+' загружаю...';
	}
	else{
		value.innerHTML = img+' идет поиск...';
	}
	
	document.location = "#search:"+e+":"+q;

	if(type=="maps"){
		value.innerHTML = 'Search results:';
		resv.innerHTML = "<br /><iframe src=\"maps.php?q="+encodeURIComponent(q)+"\" height=\"500\" width=\"650\" frameborder=\"0\" scrolling=\"no\"></iframe>";
		nextr.innerHTML = "";
		return false;
	}
	start2=0;
	if(start<32){
		
		var url="http://ajax.googleapis.com/ajax/services/search/"+type+"?v=1.0&filter=1&key=ABQIAAAA9cuS2ToykTODWTgzr5qAuRQxMDBcEALRwwtQ3-ky4PqXSeOE-RSNJ5UfBIDDwMbwsqYZGrr2BtwDtA&q="+encodeURIComponent(q)+"&rsz=large&start="+start+"&"+cx+hl+gl+imgs+"&callback=GoogleCallback&context=?";
	}else{
		start2 = start+1;
		if(e=='web'){
			bn='';
		}else if(e=='images'){
			bn='images:';
		}
		var url="/result.php?q="+bn+encodeURIComponent(q)+"&i="+start2+"&n=8";
	}
	 $.getJSON(url,
	function (data) {
		if(start<32){
			var res=data.cursor.estimatedResultCount;
		}else{
			var res=data.estimatedCount.replace(",","");
			var res=res.replace(",","");
		}
			var result = "";
			switch (type) {    						    
				    case 'books':
						result += '<table>';
				        $.each(data.results,
        					function(i, val) {
           						result += '<tr><td align="center"><a href="'+val.unescapedUrl+'" title="'+val.titleNoFormatting+'" target="_blank" class="img" ><img src="'+val.tbUrl+'" width="'+val.tbWidth+'" height="'+val.tbHeight+'" alt="'+val.titleNoFormatting+'" style="padding-right: 5px" /></a></td>';
        						result += '<td><span><h4>'+val.title+'</h4>'+val.authors+'<span style="font-size:11px;color:#AFAFAF">, '+val.publishedYear+' год, '+val.pageCount+' стр.</span><br/>ID: '+val.bookId+'</span></td>';
        					}
        				);
						result += '</table>';
						names = 'books';
                        break;
				    case 'images':
						result += '<br /><ul class="gallery">';
				        $.each(data.results,
        					function(i, val) {
								
								widthi=val.width||val.imageWidth;
								heighti=val.height||val.imageHeight;
								widtht=val.tbWidth||val.thumbnailWidth;
								heightt=val.tbHeight||val.thumbnailHeight;
								turl=val.tbUrl||val.thumbnailUrl;
								vurl=val.visibleUrl||val.displayUrl;
								title=val.titleNoFormatting||val.imageUrl;
								curl=val.originalContextUrl||val.rawUrl;
								url=val.imageUrl||val.url;
								text=val.content||parse_url(url);
								
								if(widthi>1000){
									width = 1000;
								}else{
									width = widthi;
								}
                               result += '<li><span></span><a href="'+url+'"  onclick="lyte(\''+url+'\',\''+text+'\'); return false;" title="'+title+'" ><img src="'+turl+'" width="'+widtht+'" height="'+heightt+'" alt="'+title+'"  style="padding-right: 5px" class=img /></a>';
        						result += '<br />'+text+'<font style="font-size:11px;color:#787878">,  '+widthi+'x'+heighti+'</font><br /><a href="'+curl+'" title="'+title+'" target="_blank" style="color:#008600">'+vurl+'</a></li>';  
							
								
        					}
        				);
						
						result += '</ul>';
						names = 'images';
				        break;
				    case 'video':
						result += '<table>';
				        $.each(data.results,
        					function(i, val) {
								title=val.title;
								purl=val.playUrl;
								ntitle=val.titleNoFormatting;
								text=val.content;
								autht=val.publisher;
								turl=val.tbUrl;
								t = title.replace('\"', '');
								t = t.replace('"', '');
								t = t.replace('\'', '');
                                result += '<tr><td align=center valign="top"><a href="'+purl+'" title="'+ntitle+'" target="_blank" onclick="';
								result += "lyteflash('"+purl+"',500,411,'"+t+"');";
								result += ' return false;"><img src="'+turl+'" width="160" alt=\''+ntitle+'\'  style="padding-right: 5px" class=img /></a></td>';
        						result += '<td><span><b>'+title+'</b><div style="padding-left:3px"><span style="font-size:11px;color:#787878"><b style="color:#4E91CC">'+s_to_m(val.duration)+'</b> - '+dateto(val.published)+'</span><br/>'+text+'<br /><a href="'+purl+'" title="'+ntitle+'" target="_blank"  style="color:#008600">'+autht+'</a></span></div></td></tr>';  

        					}
							
        				);
						result += '</table>';
						names = 'videos';
				        break;
					case 'news':
				        $.each(data.results,
        					function(i, val) {
        						result += '<li><span style="background-image:url(http://'+parseUri(val.unescapedUrl)+'/favicon.ico);margin-left:-50px;margin-right:30px;margin-bottom:-3px;width:16px;height:16px"> &nbsp; &nbsp; </span><a href="'+val.unescapedUrl+'" title="'+val.unescapedUrl+'" target="_blank" style="font-size:15px">'+val.title+"</a><br /><span style='color:#787878;'>"+dateto(val.publishedDate)+"</span><br /> <b  style='color:#008600;text-decoration:none'>"+val.publisher+"</b> - "+val.content+"<br /><span style='color:#638696;font-size:12px'>"+val.unescapedUrl.replace('http://', "")+"</span></li><br />"; 
        					}
        				);
						names = 'news';
				        break;
				    case 'web':
				    default:
				        $.each(data.results,
        					function(i, val) {

								urlu=val.unescapedUrl||val.rawUrl;
								urlv=val.visibleUrl||val.site;
								urli=val.url||val.url;
								text=val.content||val.snippet;
									
								url = urlu.replace(/^http(s*):\/\//, "");
								url2 = url;
								url = Url.decode(url);
								urlc = url.replace(urlv, "");
								if(urlc.length>80){
									url =  url.substr(0,80)+"...";
								}
								v = start+i;
								url = url.replace(urlv, "<a href=\"/search:web:"+encodeURIComponent(q)+" site:"+urlv+"\" onClick=\"find('"+q+"','"+urlv+"','"+v+"','"+urlu+"');return false;\" title='Поиск по этому домену' style='color:#008600;text-decoration:none' title='Поиск по этому сайту'>"+urlv+"</a>");
									urlx = url.replace(/\/$/g,"");
									link = decodeURIComponent(urli);
	        						result += '<li id="l'+v+'" ><span style="background-image:url(http://'+urlv+'/favicon.ico);margin-left:-52px;margin-right:37px;margin-bottom:-1px;width:16px;height:16px"> &nbsp; &nbsp; </span><a href="'+link+'"  target="_blank" style="font-size:16px" id="a'+v+'">'+val.title+"</a><br /><span onClick=\"info('"+v+"','"+urlv+"','"+urli+"','"+val.cacheUrl+"','"+q+"')\" id='c"+v+"' style='cursor:help;'>"+text+"</span><br /><div id='s"+v+"' style='display:none;'></div><span style='color:#638696;font-size:12px'>"+filet(urli)+urlx+"</span></li><div id='z"+v+"' style='display:none;'></div><br />"; 
								
        					}
        				);
						names = 'pages';
				        break;
						
					
				}
			if (res && res != 'undefined') {
				
				if(type != "images"){
					var ds = 'border-bottom:1px solid #ccc;';
					resv.style.width = "700px";
				}else{var ds = '';resv.style.width = "80%";}
				if(next == true){
					resv.innerHTML += "<a name='r_"+start+"'></a><ol start=\""+(start+1)+"\" style='display:none;padding-top:13px;"+ds+"margin-top:0px;margin-bottom:0px;' id='r_"+start+"'>"+result+"</ol>";
					
					$("#r_"+start).slideToggle("fast");
	
					start = start + 8;
					if(start>=32){
						nexw = false;
					}else{nexw=true;}
					if(nexw && start<res){
						if(window.opt['oscroll']==0){
							nextr.innerHTML = " &nbsp; &nbsp; <span>&larr;</span> <a  title='Result "+(start-8)+"' href='#prev' onClick=\"scrollToElement('r_"+(start-16)+"\');return false;\">Prev</a>  &nbsp; &nbsp;  &nbsp; <a id='next' href='#more_results' onClick=\"Google("+start+",true);return false;\">More results</a>   <span>&rarr;</span> <div style='display:block;padding-left:510px;margin-top:-18px;'><span>&uarr;</span>  <a href='#up' onClick=\"scrollToElement('logo\');return false;\">Up</a></div>";
						}else{
							nextr.innerHTML = " &nbsp; &nbsp; <span>&larr;</span> <a href='#r_"+(start-16)+"'>Prev</a>  &nbsp; &nbsp;  &nbsp; <a id='next' href='#more_results' onClick=\"Google("+start+",true);return false;\">More results</a>   <span>&rarr;</span> <div style='display:block;padding-left:510px;margin-top:-18px;'><span>&uarr;</span>  <a  href='#top'>Up</a></div>";
						}

					}
					else{
						if(window.opt['oscroll']==0){
							nextr.innerHTML = " <div style='display:block;padding-left:510px'><span>&uarr;</span>  <a href='#top' onClick=\"scrollToElement('logo\');return false;\">Up</a></div>";
						}else{
							nextr.innerHTML = " <div style='display:block;padding-left:510px'><span>&uarr;</span>  <a  href='#top'>Up</a></div>";
						}
					}
					if(window.opt['oscroll']==0){
						if(type!="images"){
							scrollToElement("scr");
						}
					}
				}
				else{
					value.innerHTML = 'Search Result: <b>'+Comma(res)+ '</b> '+names;
					resv.innerHTML = "<ol start=\""+(start+1)+"\" style='display:none;"+ds+"padding-top:10px;margin-top:0px;margin-bottom:0px;' id='r_"+start+"'><br />"+result+"</ol>";
					if(type != "images"){
					$("#r_"+start).slideToggle("normal");
					}else{$b("r_"+start).style.display = "block";}
					
					start = start + 8;
					if(start<32 && start<res){
						nextr.innerHTML = "<a id='next' title="+start+" href='#' onClick=\"Google("+start+",true);return false;\">More results</a>   <span>&rarr;</span>";
					}else{nextr.innerHTML = '';}
				}
			}else{
			value.innerHTML = 'No result for your query: <b>'+q+'</b>';
				resv.innerHTML = ""; nextr.innerHTML = "";
			}
		
	});
	if(next != true){
		cookie_add(q,e);
		var rex = '';
		 $.get("/spell.php",{ q: qz }, function(data){
		if(data!=""){
			$b("req").innerHTML = data;
			$("#req").cFadeIn("normal");
		  }else{
			$("#req").cFadeOut("normal");
		  }
		  }
		);


	
		
	}

	}
}
else{
	$b("value").innerHTML = 'Enter Your Search Criteria';
}

}
function GoogleCallback (func, data) {
    window[func](data);
}


var Url = {

    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },


    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}