//commonly used
function t_ob(obj_id){return document.getElementById(obj_id);}
function show_o(id, show){if (show) show = 'block'; else show = 'inline'; t_ob(id).style.display = show;}
function hide_o(id){t_ob(id).style.display = 'none';}
function sh_o(id, show){if (t_ob(id).style.display == 'none') show_o(id, show); else hide_o(id);}

function wr(str){return document.writeln(str);}
function confirm_entry(b, d){
	input_box=confirm(d);
	if (input_box == true){
		window.location.href = b;
	}
}
function checkit(box){
	box = t_ob(box);
	if (box && box.checked){
		if (box.type != 'radio') box.checked = false;
	}else{
		box.checked = true;
	}
	box.focus();
}

var httpRequest, httpRTimer;
function http_request(){
	if (window.XMLHttpRequest){
		httpRequest = new XMLHttpRequest();
		if (httpRequest.overrideMimeType)
			httpRequest.overrideMimeType('text/html');
	}else if (window.ActiveXObject){
		try{
			httpRequest = new ActiveXObject('Msxml2.XMLHTTP');
		}catch(e){
			try{
				httpRequest = new ActiveXObject('Microsoft.XMLHTTP');
			}catch(e){}
		}
	}
}

function obj_pos(obj){
	var left,top;
	left = top = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			left += obj.offsetLeft;
			top += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	return Array(left,top);
}
function win_scroll(){
	scroll_left = document.body.scrollLeft;
	if (scroll_left == 0){
		if (window.pageXOffset)
			scroll_left = window.pageXOffset;
		else
			scroll_left = (document.body.parentElement) ? document.body.parentElement.scrollLeft : 0;
	}
	scroll_top = document.body.scrollTop;
	if (scroll_top == 0){
		if (window.pageYOffset)
			scroll_top = window.pageYOffset;
		else
			scroll_top = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
	}
	return Array(scroll_left,scroll_top);
}
function win_size(){
	var win_width, win_height;
	win_width = win_height = 960;
	if(window.innerWidth){
		win_width = window.innerWidth;
		win_height = window.innerHeight;
	}else{
		if(!(document.documentElement.clientWidth == 0)){
			win_width = document.documentElement.clientWidth;
			win_height = document.documentElement.clientHeight;
		}else{
			win_width = document.body.clientWidth;
			win_height = document.body.clientHeight;
		}
	}
	return Array(win_width,win_height);
}
function count_word(num,words){ //0, 1, 2 
	var num1 = parseInt(num.toString().substr(num.toString().length-1,1));
	var num2 = parseInt(num.toString().substr(num.toString().length-2,2));
	if (num2 <= 9 || num2 >= 20){
		if (num1 == 0 || (num1 >= 5 && num1 <= 9))
			return words[0];
		else if (num1 == 1)
			return words[1];
		else
			return words[2];

	}else return words[0];
}
function autolink(text){
	return (
		text.replace(
			/(sht|ht|f)tp:\/\/([^ \,\;\:\!\)\(\"\'\<\>\f\n\r\t\v])+/g,
			function($0,$1,$2){
				text = $0.substring(0,$0.length);
				while (text.length > 0 && text.charAt(text.length-1) == '.')
					text = text.substring(0,text.length-1);
				return ' '+text.link(text);
			}
		)
	);
}



//cart add new product
function cart_put(id){
	if (id){
		//checking if connect is possible
		http_request();

		//sending GET results
		if (httpRequest){
			httpRequest.open('GET', '/ajax/?cart&id='+id, true);
			httpRequest.onreadystatechange = cart_responce;
			httpRequest.send('');

			httpRTimer = window.setTimeout('httpRequest.abort;', 10000); //timer
		}else{
			window.location.href = '?id='+id;
		}
	}
}

function cart_responce(){
	if (httpRequest.readyState == 4){
		clearTimeout(httpRTimer); //timer
		if (httpRequest.status == 200){
			var resp_text = httpRequest.responseText;
			if (resp_text){
				if (resp_text && resp_text.indexOf(':') != -1){
					resp_text = resp_text.split(':');			

					var id = resp_text[0];
					if (t_ob('prod'+id))
						t_ob('prod'+id).innerHTML = '<img src="/imgs/incart.png" alt="Товар добавлен в корзину">';
					var prod_words = new Array();
					
					var words = new Array();
					words = ['товаров','товар','товара'];
					t_ob('incart').innerHTML = resp_text[1].toString()+' '+count_word(parseInt(resp_text[1]),words)+' на '+resp_text[2].toString()+' руб.';

				}
			}
		}
	}
}

//catalog show bigimg
function growimg_process(){
	if (active_holder < n_of_divs && bholders[active_holder].style.display == 'none'){
		bholders[active_holder].style.display = 'block';
		active_holder++;
	}else{
		gi_proc = window.clearInterval(gi_proc);
		active_holder = 0;
	}
}

function growimg(){
	gi_proc = window.setInterval('growimg_process()',timeout);
}

function loadimg(){
	var wmargin = 20;
	var bigw,bigh,bigl,bigt;
	var scb = 15; //scrollbar width
	
	if (loadbig.complete && loadbig.width && loadbig.height){
		bigw = loadbig.width; bigh = loadbig.height;

		//if out of window width and height
		var winsize = win_size();
		if (bigw > winsize[0]-wmargin*2-scb){
			bigh = Math.ceil(bigh*(winsize[0]-wmargin*2-scb)/bigw);
			bigw = winsize[0]-wmargin*2-scb;
			bigl = wmargin;
		}else bigl = pos[0]-bigw/2+siz[0]/2;
		if (bigh > winsize[1]-wmargin*2-scb){
			bigw = Math.ceil(bigw*(winsize[1]-wmargin*2-scb)/bigh);
			bigh = winsize[1]-wmargin*2-scb;
			bigt = wmargin;
		}else bigt = pos[1]-bigh/2+siz[1]/2;

		//if out of window left and top
		var wscroll = win_scroll();
		if (bigl < wscroll[0]+wmargin) bigl = wscroll[0]+wmargin;
		if (bigt < wscroll[1]+wmargin) bigt = wscroll[1]+wmargin;
		//if out of window right and bottom
		if (bigl+bigw+wmargin > wscroll[0]+winsize[0]-scb) bigl = wscroll[0]+winsize[0]-scb-bigw-wmargin;
		if (bigt+bigh+wmargin > wscroll[1]+winsize[1]-scb) bigt = wscroll[1]+winsize[1]-scb-bigh-wmargin;

		var wstep,hstep;
		wstep = (bigw-siz[0])/n_of_divs;
		hstep = (bigh-siz[1])/n_of_divs;

		var lstep,tstep;
		lstep = (pos[0]-bigl)/n_of_divs;
		tstep = (pos[1]-bigt)/n_of_divs;


		var wid,hei,lef,top;
		wid = siz[0]; hei = siz[1]; lef = pos[0]; top = pos[1];
		var k = 1;
		for (i=0;i<n_of_divs;i++){
			k = i*2/n_of_divs;
			wid = Math.ceil(wid + wstep*k); hei = Math.ceil(hei + hstep*k);
			lef = Math.ceil(lef - lstep*k); top = Math.ceil(top - tstep*k);
			bholders[i].style.width = wid;
			bholders[i].style.height = hei;
			bholders[i].style.left = lef;
			bholders[i].style.top = top;
//			bholders[i].style.background = 'transparent url('+loadbig.src+') no-repeat 50% 50%';
//			bholders[i].innerHTML = '<img src="'+loadbig.src+'" width='+wid+'>';
		}
		bholders[Math.ceil(n_of_divs-1)].innerHTML = '<img src="'+loadbig.src+'" width='+wid+' style=\"border:2px solid #aaa;\">';

		t_ob('holder_loading').style.display = 'none';
		growimg();

	}else setTimeout('loadimg()',300);
}

var divs_created = false;
var bholders = new Array();
var active_holder = 0;
var growtime = 100;
var timeout = 5;
var n_of_divs = Math.ceil(growtime/timeout);
var pos = new Array();
var siz = new Array();
var loadbig = new Image;
function bigimg(obj){
	if (!divs_created){ //creating loading and grow divs
		for (i=0;i<n_of_divs;i++){
			holder = document.createElement('div');
			document.body.appendChild(holder);
			holder.style.position = 'absolute';
			holder.style.display = 'none';
			holder.style.border = '2px solid #aaa';
			bholders[i] = holder;
		}
		holder.style.cursor = 'pointer';
		holder.style.border = 'none';
		holder.onclick = function(){bigimg_hide();};

		holder_loading = document.createElement('div');
		document.body.appendChild(holder_loading);
		holder_loading.style.position = 'absolute';
		holder_loading.id = 'holder_loading';
		divs_created = true;

	}
	
	bigimg_hide();
	t_ob('holder_loading').style.display = 'block';

	var obj_kids = new Array();
	obj_kids = obj.childNodes;
	for (var i=0;i<obj_kids.length;i++){
		if (obj_kids[i].tagName.toUpperCase() == 'IMG'){
			var image_toget_size = obj_kids[i];
			i = obj_kids.length;
		}
	}
	
	if (image_toget_size){
		holder_loading.style.width = siz[0] = image_toget_size.width;
		holder_loading.style.height = siz[1] = image_toget_size.height;
		holder_loading.style.border = '2px solid #aaa';
	}else{
		image_toget_size = obj;
		holder_loading.style.width = siz[0] = 157;
		holder_loading.style.height = siz[1] = 174;
//		holder_loading.style.border = '2px solid #aaa';
	}

	pos = obj_pos(image_toget_size);
	holder_loading.style.left = pos[0];
	holder_loading.style.top = pos[1];

	loadbig = new Image;
	loadbig.src = obj.href;

	loadimg();
}

function bigimg_hide(){
	for (i=0;i<n_of_divs;i++)
		bholders[i].style.display = 'none';
}


//+- text field number value
function revalue(id,way){
	var obj = t_ob(id);
	if (way == 'up'){
		obj.value = parseInt(obj.value)+1;
	}else{
		if (parseInt(obj.value) > 0)
			obj.value = parseInt(obj.value)-1;
	}
}

//side gallery images change //make change after load
var r_photo_url_base = '';
function r_photo_view(act){
	var gal = act.parentNode.id;
	var pho = act.id.substr(2);
	t_ob(gal+'_i').src = '/files/photos/'+gal+'/'+pho+'_r.jpg';
	t_ob(gal+'_a').title = t_ob(gal+'_i').alt = act.title;

	r_photo_url_base = t_ob(gal+'_a').href.replace(/([a-zA-Z0-9_]*)\?.*/, "");;
	r_photo_url_base = r_photo_url_base.replace(/\/?$/, "");
	r_photo_url_base += '/';

	t_ob(gal+'_a').href = r_photo_url_base+'?id='+pho;
	
	var gal_div = act.parentNode;
	for (var i=0;i<gal_div.childNodes.length;i++){
		if ((gal_div.childNodes[i].tagName == 'a' || gal_div.childNodes[i].tagName == 'A') && gal_div.childNodes[i].className == 'act')
			gal_div.childNodes[i].className = '';
	}
	act.className = 'act';
}

//main gallery functions
var img_id,img_ind;
img_ind = 0;
var preload = new Image;
function url_photo_id(){
	if (window.location.href.indexOf('#') != -1){
		var url = window.location.href.split('#');
	}else{
		if (window.location.href.indexOf('id=') != -1){
			var url = window.location.href.split('id=');
		}else{
			var url = new Array();
		}
	}
	
	if (!url[1]) url[1] = gal_imgs[0];
	
	if (url[1] != img_id){
		img_id = url[1];
		for (var i = 0; i < gal_imgs.length; i++){
			if (gal_imgs[i] == img_id) img_ind = i;
		}
		change_img();
	}
}

function change_img(){

	preload = new Image; //big_img preload
	preload.src = '/files/photos/'+img_dir+'/'+img_id+'_m.jpg';

	//highlight thumbnail
	for (var i = 0; i < gal_imgs.length; i++)
		t_ob('i_'+gal_imgs[i]).className = '';
	t_ob('i_'+img_id).className = 'act';
	
	//focus makes scroll
	t_ob('i_'+img_id).focus();
	
	if (!preload.complete)
		t_ob('show_medium').innerHTML = '<img src="/imgs/loading.gif" alt="секундочку" style="border:none;">';
		
	load_img(); //show loaded image

}

function show_img(id){
	window.location = '#'+id;
	url_photo_id();
}

function load_img(){
	if (preload.complete){
		var show_medium;
		show_medium  = '<a href="/files/photos/'+img_dir+'/'+img_id+'_b.jpg" onclick="bigimg(this); return false;">';
		show_medium += '<img src="/files/photos/'+img_dir+'/'+img_id+'_m.jpg" alt="'+gal_alts[img_ind]+'">';
		show_medium += '</a>';
		t_ob('show_medium').innerHTML = show_medium;
		t_ob('show_medium').style.backgroundImage = 'url(\''+preload.src+'\')';
	}else
		setTimeout('load_img()',300);
}

function prev_img(){
	if (gal_imgs[img_ind-1]) show_img(gal_imgs[img_ind-1]);
	else show_img(gal_imgs[gal_imgs.length-1]);
}

function next_img(){
	if (gal_imgs[img_ind+1]) show_img(gal_imgs[img_ind+1]);
	else show_img(gal_imgs[0]);
}

//hidden fields open / close

//statuses:
//0 closed
//1 opened
//2 closing
//3 opening

var hides_object = new Array();
var hides_status = new Array();
var hides_height = new Array();
var resize_step = 19; //px
var hides_in_action = 0;

function activate_hides(id){
	if (!hides_object[id]){
		hides_object[id] = t_ob(id);
//		hides_object[id].style.height = 0;
		hides_object[id].innerHTML += '<div id='+id+'_bot></div>';
		var pos_top = new Array();
		var pos_bot = new Array();
		pos_top = obj_pos(hides_object[id]);
		pos_bot = obj_pos(t_ob(id+'_bot'));
		hides_height[id] = pos_bot[1]-pos_top[1];
	}
	var now_status = hides_status[id];
	if (!now_status || now_status == 2)
		hides_status[id] = 3;
	else if (now_status == 1 || now_status == 3)
		hides_status[id] = 2;
		
	start_hides_action();
}

function start_hides_action(){
	if (!hides_in_action){
		hides_action_timer = window.setInterval('hides_action()',30);
		hides_in_action = 1;
	}
}

function hides_action(){
	var tmp_size = 0;
	var use_step = 0;
	var repeat_action = 0;
	for (var i in hides_object){

		tmp_size = parseInt(hides_object[i].style.height);
		use_step = resize_step;
		if (hides_status[i] == 2){
			if (tmp_size > 0){
				if (tmp_size < resize_step) use_step = tmp_size;
				hides_object[i].style.height = tmp_size - use_step;
				repeat_action = 1;
			}else hides_status[i] = 0;
		}
		if (hides_status[i] == 3){
			if (tmp_size < hides_height[i]){
				if (hides_height[i] - tmp_size < resize_step) use_step = hides_height[i] - tmp_size;
				hides_object[i].style.height = tmp_size + use_step;
				repeat_action = 1;
			}else hides_status[i] = 1;
		}
	}
	if (!repeat_action && hides_in_action){
		hides_action_timer = window.clearInterval(hides_action_timer);
		hides_in_action = 0;
	}
}

function hide_all_hides(){
	for (var i in hides_object){
		hides_status[i] = 2;
	}
	start_hides_action();
}

//smooth scrolling to ancores
function scrolled_now(){
	if (self.pageYOffset)
		return self.pageYOffset;
	if (document.documentElement && document.documentElement.scrollTop)
		return document.documentElement.scrollTop;
	if (document.body.scrollTop) return document.body.scrollTop;
		return 0;
}
function scroll_to_object(me) {
	var ancore = t_ob(me.href.substr(me.href.indexOf('#')+1));
	var start = scrolled_now();
	var stop = obj_pos(ancore);
	stop = stop[1]-40;

	var distance = stop > start ? stop - start : start - stop;
	if (distance < 100){
		scrollTo(0, stop);
		return;
	}
	var speed = Math.round(distance/100);
	if (speed >= 20) speed = 20;
	var step = Math.round(distance / 30);
	
	var leap = stop > start ? start + step : start - step;
	var timer = 0;
	if (stop > start){
		for (var i=start; i<stop; i+=step){
			setTimeout('window.scrollTo(0, '+leap+')', timer * speed);
			leap += step;
			if (leap > stop) leap = stop;
			timer++;
		}
		return;
	}
	for (var i=start; i>stop; i-=step){
		setTimeout('window.scrollTo(0, '+leap+')', timer * speed);
		leap -= step; if (leap < stop) leap = stop; timer++;
	}
}

var net_divs = new Array();
var net_divs_shown = new Array();
function show_networks(id){
	net_divs.push(id);
	show_o(id, 1);
	net_divs_shown[id] = 1;
}
function hide_networks(id){
	net_divs_shown[id] = 0;
	net_hide_timer = window.setTimeout('hide_unshown_divs()', 300);;
}
function hide_unshown_divs(){
	for (var i = 0; i < net_divs.length; i++){
		if (!net_divs_shown[net_divs[i]])
			hide_o(net_divs[i]);
	}
}

function write_networks(url,id,title){
	
	if (!net_divs.length){
		wr('<style type="text/css">');
		wr('div.network_div {width:170px; padding:6px 0 10px 8px; background-color:#fff; border:2px solid #999; position:absolute;}');
		wr('div.network_div img {vertical-align:middle; margin-right:10px;}');
		wr('div.network_div a {display:block; font:normal 11px/22px Verdana;}');
		wr('div.network_div a:hover {text-decoration:underline;}');
		wr('</style>');
	}
	
	url = 'http://nogi-v-ruki.ru'+url;
	title = encodeURI(title);

	wr('<a href="#" class=share_networks id=share_link'+id+' onclick="return false;" onmouseover="show_networks(\'share'+id+'\');" onmouseout="hide_networks(\'share'+id+'\');">поделиться</a>');
	wr('<div class=network_div style="display:none;" id=share'+id+' onmouseover="show_networks(\'share'+id+'\');" onmouseout="hide_networks(\'share'+id+'\');">');
	
	//vkontakte
	wr('<a href="http://vkontakte.ru/share.php?url='+url+'" target="_blank"><img src="/imgs/vkontakte_s.png" alt="">Вконтакте</a>');
	
	//twitter
	wr('<a href="http://twitter.com/home?status=Currently reading '+url+'" target="_blank"><img src="/imgs/twitter_s.png" alt="">Twitter</a>');
	
	//livejournal
	wr('<a href="http://www.livejournal.com/update.bml?event='+title+'<br>'+url+'&subject='+title+'" target=_blank><img src="/imgs/livejournal_s.png" alt="" target=_blank>Живой Журнал</a>');
	
	//facebook
	wr('<a href="http://www.facebook.com/share.php?u='+url+'&t='+title+'" target=_blank><img src="/imgs/facebook_s.png" alt="" target=_blank>Facebook</a>');
	
	//moj mir
	wr('<a href="http://connect.mail.ru/share?share_url='+url+'&title='+title+'" target=_blank><img src="/imgs/moimir_s.png" alt="" target=_blank>Мой Мир</a>');
	
	//mail
	wr('<a href="http://api.addthis.com/oexchange/0.8/forward/email/offer?username=internal&url='+url+'&title='+title+'" target=_blank><img src="/imgs/mail_s.png" alt="" target=_blank>Отправить письмом</a>');
	
	wr('</div>');
	
	var net_div_pos = new Array(2);
	net_div_pos = obj_pos(t_ob('share_link'+id));
	t_ob('share_link'+id).style.left = net_div_pos[0];
	t_ob('share_link'+id).style.top = net_div_pos[1] + 33;
	
	net_divs_shown['share'+id] = 0;
}

function http_links(){
	var all_links = document.getElementsByTagName('a');
	for (var i=0;i<all_links.length;i++){
	    	if (
		    	all_links[i].href.indexOf('#') != -1 &&
	    		all_links[i].href.substr(all_links[i].href.indexOf('#')+1) != '' &&
	    		all_links[i].pathname == location.pathname && 
			(
				!all_links[i].onclick ||
				all_links[i].onclick == 'undefined'
			)
		)
			all_links[i].setAttribute('onClick','scroll_to_object(this); return false;');
	}
}
//window.onload = http_links;

