
var base_url = '';
var login = false;
var last_otziv_adding = '';
var last_otziv_editing = '';
var last_otziv_editing_html = '';

var errors = {
	request: 'Внутренняя ошибка!'
};


var msgs = {
	service_not_available: 'Для использования данной функции необходимо представиться введя e-mail и пароль в левой части сайта!'
};

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

function go(module, controller, action) {
	var url = base_url+'/'
	if (module) {
		url = url+module+'/'
	} else {
		url = url+'main/'
	}
	if (controller) {
		url = url+controller+'/'
	} else {
		url = url+'index/'
	}
	if (action) {
		url = url+action+'/'
	} else {
		url = url+'index/'
	}
	document.location.href = url
}

function order_inner(module, controller, action){
	go(module, controller, action);
	try 
    {
        cartwnd.close();
    } 
    catch (ex){}
}

function good_details(cat, id) {
	try 
	{
		gooddetail.close();
	} 
	catch (failed) 
	{	
		//
	}
	gooddetail = window.open('http://'+location.host+base_url+'/goodwnd/index/name/'+cat+'/goodid/'+id+'/', 'gooddetail','top=15, left=20, menubar=0, toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=0, width=580, height=580');
	gooddetail.focus();
}

function main_info_ozonplace(id) {
	try 
	{
		delivery.close();
	} 
	catch (failed) 
	{	
		//
	}
	delivery = window.open('http://'+location.host+base_url+'/main/info/ozonplace/id/'+id+'/', 'delivery','top=15, left=20, menubar=0, toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=0, width=580, height=580');
	delivery.focus();
}

function show_cart_wnd() 
{
    try 
    {
        cartwnd.close();
    } 
    catch (failed) 
    {	
        //
    }
    cartwnd = self.window.open('http://'+top.location.host+base_url+'/main/cart/', 'cartwnd', 'top=150, left=400, menubar=0, toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=0, width=580, height=350');
    cartwnd.focus();
}


function main_cart_menu()
{
	var req = new JsHttpRequest();
	req.onreadystatechange = function() {
		if (req.readyState == 4) {
			if (req.responseJS) {
				$('block_cart').innerHTML =  req.responseJS.response;
			} 
		}
	}
	req.loader = '';
	req.open('get', base_url+'/main/cart/menu/', true);
	req.send( { args: '' } );
}


function main_cart_add(cat_name, good_id, cnt)
{    
	try 
    {
        cartwnd.close();
    } 
    catch (failed) 
    {	
        //
    }
    cartwnd = self.window.open('http://'+top.location.host+base_url+'/main/cart/add/cat/'+cat_name+'/art/'+good_id+'/num/'+cnt+'/', 'cartwnd', 'top=150, left=400, menubar=0, toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=0, width=480, height=350');
    cartwnd.focus();	
}


function main_cart_order(ids, summ) 
{
	try 
	{
		orderwnd.close();
	} 
	catch (failed) 
	{	
		//
	}
	orderwnd = window.open('http://ozon.ru/?context=cart&partner=homerelax&id='+ids, 'orderwnd','top=15, left=20, menubar=1, toolbar=1, location=1, directories=1, status=1, scrollbars=1, resizable=1, width=1020, height=540');
	orderwnd.focus();
    stat_order(summ);
}


// 
function stat_order(summ) 
{
	var req = new JsHttpRequest();
	req.onreadystatechange = function() {
		if (req.readyState == 4) {
			if (req.responseJS) {
				//
			}
		}
	}
	req.open('POST', base_url+'/stat_order.php?summ='+summ, true);
	req.send();
}


function main_login_dologin(aforward) {
	if (aforward == null) aforward = '';
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
                if ($('login')) $('login').innerHTML =  req.responseJS.login;
                if ($('login_disc')) $('login_disc').innerHTML = req.responseJS.login;
            }
        }
    }
    req.open('GET', base_url+'/main/login/dologin/', true);
    req.send( { forward: aforward } );
}


function main_login_cancel(aforward) {
	if (aforward == null) aforward = '';
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
                if ($('login')) $('login').innerHTML = req.responseJS.login;
                if ($('login_disc')) $('login_disc').innerHTML = req.responseJS.login_disc;
                if ($('login_index')) $('login_index').innerHTML = req.responseJS.login_index;
                if ($('block_bookmark')) $('block_bookmark').innerHTML = '';
                login = false;
                update_content();
            }
        }
    }
    req.open('GET', base_url+'/main/login/mustlogin/', true);
    req.send( { forward: aforward } );
}


function main_login_check(action, aemail, apass, aforward) 
{
	if (aforward == null) aforward = '';
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	login = false;
            if (req.responseJS) {
                if ($('login') && (action == "login" || req.responseJS.res == 1)) $('login').innerHTML = req.responseJS.login;
                if ($('login_disc') && (action == "login" || req.responseJS.res == 1)) $('login_disc').innerHTML = req.responseJS.login_disc;
                if ($('login_index') && (action == "login_index" || req.responseJS.res == 1)) $('login_index').innerHTML = req.responseJS.login_index;
                if (req.responseJS.res == 1) {
                	update_content();
                	login = true;
                }
            }
        }
    }
    req.open('POST', base_url+'/main/login/check/', true);
    req.send( { email: aemail, pass: apass, forward: aforward } );
}    
    

function main_login_passremind(aemail, acheck_human, aop) 
{
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
                if ($('login')) $('login').innerHTML = req.responseJS.login;
                if ($('login_disc')) $('login_disc').innerHTML = req.responseJS.login_disc;
                if (req.responseJS.res == 1)
                	update_content();
            }
        }
    }
    req.open('POST', base_url+'/main/login/passremind/', true);
    req.send( { email: aemail, check_human: acheck_human, op: aop } );
}    
    

function main_login_register(aforward, Aname, Alast_name, Acountry, Acity, Abirth_day, Aemail, Apass, Apass1, Acheck_human, Asave)
{
	if (aforward == null) aforward = '';
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
                if ($('login')) $('login').innerHTML = req.responseJS.login;
                if ($('login_disc')) $('login_disc').innerHTML = req.responseJS.login_disc;
                if ($('login_index')) $('login_index').innerHTML = req.responseJS.login_index;
                update_content();
            }
        }
    }
    req.open('POST', base_url+'/main/login/register/', true);
    req.send( { forward: aforward, op: Asave, name: Aname, last_name: Alast_name, country: Acountry, city: Acity, birth_day: Abirth_day, email: Aemail, pass: Apass, pass1: Apass1, check_human: Acheck_human } );
}


function main_login_captchaupdate()
{
	document.getElementById('captcha').src = base_url+"/captcha/index.php?md5="+(Math.round(Math.random() * 10000000)+100000).toString();
	return false;
}


function main_otziv_add(aop, acomment, acheck_human)
{
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
                document.getElementById('login').innerHTML = req.responseJS.response;
                if (req.responseJS.res==1) update_content();
            }
        }
    }
    agood_id = $('good_id').value;
    arazdel = $('razdel').value;
    acat_id = $('cat_id').value;
    req.open('POST', base_url+'/main/otziv/add/', true);
    req.send( { op: aop, good_id: agood_id, razdel: arazdel, cat_id: acat_id, comment: acomment, check_human: acheck_human } );
}


function main_otziv_list(acur_page)
{
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
                $('otziv_l').innerHTML = req.responseJS.response
            }
        }
    }
    agood_id = $('good_id').value;
    req.open('GET', base_url+'/main/otziv/list/', true);
    req.send( { good_id: agood_id, cur_page: acur_page } );
}


function main_otziv_del(aid)
{
    if(!confirm('Удалить отзыв?')) return;
    	
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
                if (req.responseJS.res==1) 
                {
                    if ($('otziv_l')) main_otziv_list();
                	if ($('discussion_l')) main_discussion_list();
                }
            }
        }
    }
    req.open('GET', base_url+'/main/otziv/del/', true);
    req.send( { id: aid } );
}


function main_otziv_edit(aid, asave, acomment)
{
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
            	$('login').innerHTML = req.responseJS.response;
                if (req.responseJS.res==1) update_content();
                else document.location.href = '#comment';
            }
        }
    }
    agood_id = $('good_id').value;
    req.open('POST', base_url+'/main/otziv/edit/', true);
    req.send( { op: asave, good_id: agood_id, id: aid, comment: acomment } );
}

function main_discussion_list()
{
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
                $('discussion_l').innerHTML = req.responseJS.response
            }
        }
    }
    arazdel = $('cur_razdel').value;
    acat = $('cur_cat').value;
    apage = $('cur_page').value;
    
    req.open('GET', base_url+'/main/discussion/list/', true);
    req.send( { razdel: arazdel, cat: acat, page: apage } );
}

function main_discussion_add(agood_id, acat_id, aop, acomment, acheck_human)
{
	var cur_id = 'discussion_add_'+agood_id;
	
	if (last_otziv_adding != '' && last_otziv_adding != cur_id)
	{
		ctrl = $(last_otziv_adding);
		ctrl.innerHTML = '';
		last_otziv_adding = '';
	}
	
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
            	if (req.responseJS.res==1) {
            		$(cur_id).innerHTML = "";
            		main_discussion_list();
            		last_otziv_adding = '';
            	} else {
            		$(cur_id).innerHTML = req.responseJS.response;
            		last_otziv_adding = cur_id;
            	}
            }
        }
    }
    arazdel = $('cur_razdel').value;
    req.open('POST', base_url+'/main/otziv/add/', true);
    req.send( { discussion: 'true', forward: 'acceptdisc', op: aop, good_id: agood_id, razdel: arazdel, cat_id: acat_id, comment: acomment, check_human: acheck_human } );
}

function main_discussion_edit(acomm_id, aop, acomment)
{
	var cur_id = 'comm_'+acomm_id;
	
	if (last_otziv_editing != '' && last_otziv_editing != cur_id)
	{
		ctrl = $(last_otziv_editing);
		ctrl.innerHTML = last_otziv_editing_html;
		last_otziv_editing = '';
	}
	
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
                if (req.responseJS.res==1) {
                	main_discussion_list();
                	last_otziv_editing = '';
                } else {
                	//document.location.href = '#comment';
                	var ctrl = $(cur_id);
                	if(ctrl) {
                		last_otziv_editing_html = ctrl.innerHTML;
                		ctrl.innerHTML = req.responseJS.response;
                		last_otziv_editing = cur_id;
                	}
                }
            }
        }
    }
    agood_id = 0;
    req.open('POST', base_url+'/main/otziv/edit/', true);
    req.send( { discussion: 'true', forward: 'acceptdisc', op: aop, good_id: agood_id, id: acomm_id, comment: acomment } );
}

function main_discussion_edit_cancel()
{
	if (last_otziv_editing != '')
	{
		ctrl = $(last_otziv_editing);
		if(ctrl) {
			ctrl.innerHTML = last_otziv_editing_html;
			last_otziv_editing = '';
		}
	}
}

function main_discussion_add_cancel()
{
	if (last_otziv_adding != '')
	{
		ctrl = $(last_otziv_adding);
		if(ctrl) {
			ctrl.innerHTML = '';
			last_otziv_adding = '';
		}
	}
}

function disable_btn(ctrl_id)
{
	var ctrl = $(ctrl_id);
	ctrl.disabled = true;
	ctrl.value = "Загрузка...";
}

function update_content()
{
    if ($('otziv_l')) main_otziv_list();
	if ($('discussion_l')) main_discussion_list();
	if ($('block_bookmark')) main_bookmark_list();
}

function main_bookmark_list()
{
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseJS) {
				if ($('block_bookmark')) {
					if (req.responseJS.count>0) {
						$('block_bookmark').innerHTML =  req.responseJS.response;
					} else {
						$('block_bookmark').innerHTML =  '';
					}
				}
            }
        }
    }
    req.open('GET', base_url+'/main/bookmark/list/', true);
    req.send( {} );
}

String.prototype.printAddr = 
function (_hamper,_prefix,_postfix,_face)
{
  _hamper=
  _prefix+
  "@"+
  this+
  (_postfix || '')
  document.write((_face||_hamper).link("mailto:"+_hamper));
}

function toggle(id)
{
	$(id).style.display = visible(id) ? 'none' : ''
}

function visible(id)
{
	return $(id).style.display != 'none';
}

function bgImgOffsetX(id, element, visX, hideX)
{
	$(element).style.backgroundPosition = (visible(id) ? visX : hideX)+"px 0px";
}

function getExpired()
{
	var today = new Date();
	today.setYear(today.getYear()+1903);
	return today;
}

function toogleCollapseWidget(id, element)
{
	toggle(id);
	bgImgOffsetX(id, element, 0, -20);
	$(element).blur();
	WindowUtilities.setCookie(id, visible(id), getExpired(), '/');
}

function add_bookmark(module, controller, action, params)
{
	if (!login) {
		alert(msgs.service_not_available)
		return
	}
	var req = new JsHttpRequest();
	req.onreadystatechange = function() {
		if (req.readyState == 4) {
			if (req.responseJS && req.responseJS.accept) {
				if ($('block_bookmark')) $('block_bookmark').innerHTML =  req.responseJS.response;
				alert('Закладка успешно добавлена! Список закладнок находится в левой части сайта.');
			} else {
				alert(errors.request);
			}
		}
	}
	req.loader = '';
	req.open('POST', base_url+'/main/bookmark/add/', true);
	req.send( { module: module, controller: controller, action: action, params: params } );	
}

var WindowUtilities = {
	setCookie: function(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
	},

	getCookie: function(name) {
		var cookie = " " + document.cookie;
		var search = " " + name + "=";
		var setStr = null;
		var offset = 0;
		var end = 0;
		if (cookie.length > 0) {
			offset = cookie.indexOf(search);
			if (offset != -1) {
				offset += search.length;
				end = cookie.indexOf(";", offset)
				if (end == -1) {
					end = cookie.length;
				}
				setStr = unescape(cookie.substring(offset, end));
			}
		}
		return(setStr);
	}
}
