function openWin(im,hd,h,w){
   var pic='"'+hd+'"'+" HEIGHT="+'"'+h+'"'+" SRC="+'"'+im+'"'+" WIDTH="+'"'+(w-17)+'"';
   var wn="width="+w+","+"height="+h+","+"status=no, toolbar=no, menubar=no, resizable=yes, scrollbars=yes";
   myWin=open("","_blank",wn);
   myWin.document.write('<HTML>');
   myWin.document.write('<HEAD><TITLE>'+hd+'</TITLE></HEAD>');
   myWin.document.write('<BODY LEFTMARGIN="0" TOPMARGIN="0" rightmargin="0" bottommargin="0" >');
   myWin.document.write('<IMG ALIGN="center"  border="0" bordercolor="#cccccc"  ALT='+pic+'>')
   myWin.document.write('</BODY>');
   myWin.document.write('</HTML>');
}


function check_all(e,Name,cookie_name,action,group){

		thisCheckBoxes = e.parentNode.parentNode.parentNode.getElementsByTagName('input');
		var add_values = ''; var del_values = '';
		for (i = 1; i < thisCheckBoxes.length; i++)
			if (thisCheckBoxes[i].name == Name){
				thisCheckBoxes[i].checked = e.checked;
				if (thisCheckBoxes[i].checked==true) add_values += thisCheckBoxes[i].value+',';
				else del_values += thisCheckBoxes[i].value+',';
			}

	if (action == 'save' && cookie_name!=undefined) {
		if (group!=undefined) resetCookie(cookie_name,group);
		if (add_values) saveCookieValues(cookie_name, add_values.substring(0,add_values.length-1), 1);
		if (del_values) delCookieValues(cookie_name, del_values.substring(0,del_values.length-1), 1);
	}
}


function check_add(e,cookie_name,id){
	if (cookie_name!=undefined){
		show_message('Обработка');
		if (getCookie(cookie_name) != null && getCookie(cookie_name).indexOf(id) != -1) close_message('info','Товар уже есть в Вашей корзине');
			else {
				saveCookieValues(cookie_name, id, 1);
				saveCookieValues(cookie_name+'_count', id+'_1', 1);
				$('tr'+id).className = 'hov';
				close_message('info','Товар успешно добавлен в список заказа');
			}
	}
}

function check_del(e,cookie_name,id,tid) {
	delCookieValues(cookie_name, id, 1);
	//delCookieValues(cookie_name+'_count', e.value+'_'+parseInt($('c'+e.value).value), 1);

	if ($('tr'+id)) {
		$('price').innerHTML = Math.round($('price').innerHTML - $('pr'+id).innerHTML);
		removeElement($('tr'+id).parentNode.id,'tr'+id);
		if ($('tb'+tid).childNodes.length == 0) $('prtbl'+tid).style.display = 'none';
		if (parseInt($('price').innerHTML) == 0) $('bask').innerHTML = 'В Вашей корзине пока нет ни одного товара';
	}
	close_message('info','Товар удален из корзины');
}

function check_one2(e,cookie_name,id){
	if (cookie_name!=undefined){
		show_message('Обработка');
		delCookieValues(cookie_name, e.value, 1);
		delCookieValues(cookie_name+'_count', e.value+'_'+parseInt($('c'+e.value).value), 1);
		if (e.checked == true && parseInt($('c'+e.value).value) > 0) {
			saveCookieValues(cookie_name, e.value, 1);
			saveCookieValues(cookie_name+'_count', e.value+'_'+parseInt($('c'+e.value).value), 1);
			if ($('cnt_'+id)) $('cnt_'+id).innerHTML = parseInt($('c'+e.value).value);
			close_message();
		} else if (e.checked == true) {
			e.checked = false;
			$('c'+e.value).value = 0;
			if ($('str_'+id)) {
				removeElement($('str_'+id).parentNode.id,'str_'+id);
				if ($('prtbl_body').childNodes.length == 0) $('prtbl').style.display = 'none';
					else {
						for (var i=0; i<$('prtbl_body').childNodes.length; i++) {
							now_id = $("prtbl_body").getElementsByTagName("tr")[i].id;
							$(now_id).getElementsByTagName("td")[0].innerHTML = i+1;
						}
					}
			}
		close_message('error','Товар удален из списка заказа');
		} else if (parseInt($('c'+e.value).value) > 0) close_message('info', 'Товар не найден в списке заказа');
		else close_message();
	}
}


////////////////////////////
// <<<<< РАБОТА С COOKIE  //
////////////////////////////
function addCookie(szName,szValue,dtDaysExpires,cPath)
{
   var dtExpires = new Date();
   var dtExpiryDate = "";

   dtExpires.setTime(dtExpires.getTime() + dtDaysExpires * 24 * 60 * 60 * 1000);
   dtExpiryDate = dtExpires.toGMTString();
   document.cookie = szName + "=" + szValue + "; path=" +cPath+ "; expires=" + dtExpiryDate;
}

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 unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}

function deleteCookie(name, path, domain) {
        if (getCookie(name)) {
                document.cookie = name + "=" +
                ((path) ? "; path=" + path : "") +
                ((domain) ? "; domain=" + domain : "") +
                "; expires=Thu, 01-Jan-70 00:00:01 GMT"
	}
}

function saveCookieValues(cookie_name, new_values, period, path){
        if (!new_values) return false;
        if (period==undefined) period = 1;
        if (path==undefined) path = '/';

        var checked_values = {};
  		var cookie_value = getCookie(cookie_name);
		//alert(values);
        if (cookie_value == null || cookie_value == '') addCookie(cookie_name, new_values, period, path);
        else {
			//alert(cookie_value+','+new_values);
            var values = (cookie_value+','+new_values).split(',');
            var save_values = '';
         	if (values.length > 0) for (var i=0; i<values.length; i++) if (values[i] && !checked_values['id'+values[i]]) {
					save_values += values[i]+',';
					checked_values['id'+values[i]] = 1;
         			}
         if (save_values) {
         	save_values = save_values.substring(0,save_values.length-1);
         	addCookie(cookie_name, save_values, period, path);
         	}
		}
}

function delCookieValues(cookie_name, del_values, period, path){
        if (!del_values) return false;
        if (period==undefined) period = 1;
        if (path==undefined) path = '/';

        var checked_values = {};
  		var cookie_value = getCookie(cookie_name);

        if (cookie_value != null && cookie_value != '') {
        	del_values = del_values + ',';
        	del_values = del_values.split(',');
        	if (del_values.length>0)
        		for (var i=0; i<del_values.length; i++) {
        			if (/_/.test(del_values[i])) {
        				temp = del_values[i].split('_');
        				del_id = temp[0];
        			}
        			else del_id = del_values[i];

        			//if (cookie_name == 'products_count') alert(del_id);
        			checked_values['id'+del_id] = 1;
        			}

            var values = cookie_value.split(',');
            var save_values = '';
         	if (values.length > 0)
         		for (var i=0; i<values.length; i++) if (values[i]) {
         			if (/_/.test(values[i])) {
        				temp = values[i].split('_');
        				del_id = temp[0];
        			}
        			else del_id = values[i];

         			if (!checked_values['id'+del_id]) {
					save_values += values[i]+',';
					checked_values['id'+del_id] = 1;
         			}
         		}
     	if (save_values) save_values = save_values.substring(0,save_values.length-1);
       	addCookie(cookie_name, save_values, period, path);
		}
}

function resetCookie(cookie_name,period, path){
    if (period==undefined) period = 1;
    if (path==undefined) path = '/';

	addCookie(cookie_name,'',period,path);
}

function clearBasket(cookie_name,period, path){
    if (period==undefined) period = 1;
    if (path==undefined) path = '/';

	addCookie(cookie_name,'',period,path);
	$('bask').innerHTML = 'В Вашей корзине пока нет ни одного товара';
	//close_message('error','Корзина успешно очищена');
}
////////////////////////////
// РАБОТА С COOKIE >>>>>> //
////////////////////////////
//resetCookie ('products');
//resetCookie ('products_count');


function removeElement(parent_name,child_name) {
  var d = $(parent_name);
  var olddiv = $(child_name);
  d.removeChild(olddiv);
}

function addRow(id) {
        var tr    = document.createElement("tr");
		var tbody = $("prtbl").getElementsByTagName("tbody")[0];
        var cnt   = tbody.getElementsByTagName("tr").length;
        tr.id = "str_"+id;
        tbody.appendChild(tr);

        addCells(tr, id, cnt);

        tr = null;
        return false;
}

function addCells(tr, id, cnt) {
cnt = parseInt(cnt) + 1;
/////////////// COUNT
	var td1 = document.createElement("td");
    tr.appendChild(td1);
    td1.appendChild(document.createTextNode(cnt));

/////////////// Наименование
    var td2 = document.createElement("td");
        tr.appendChild(td2);
		td2.style.textAlign = 'left';
        td2.innerHTML = $('pname_'+id).innerHTML;

/////////////// Артикул
    var td3 = document.createElement("td");
        tr.appendChild(td3);
        td3.innerHTML = $('part_'+id).innerHTML;

/////////////// КОЛИЧЕСТВО
	var td4 = document.createElement("td");
        tr.appendChild(td4);
  		td4.id = "cnt_"+id;
		td4.appendChild(document.createTextNode(parseInt($('c'+id).value)));

        td1 = td2 = td3 = td4 = null;
}




function _key(event)	{

if (event) {
	 var k = event.keyCode;
	 if(k==0) { k=event.charCode; return false; }
	 if(k==13 && $('loading-box').style.display == 'block')  {
		    $('loading-box').style.display = 'none';
		    if (OK==true) remove_func();
		    if (set_focus != '' && set_focus != undefined) {
		    	set_focus.focus();
				if ($(set_focus)!=null && $(set_focus).className == 'inp_text') $(set_focus).className = 'inp_text_err';
		    	}
		    return false;
		    }
	 if(k==27) {
		    if ($('loading-box').style.display == 'block') $('loading-box').style.display = 'none';
		    else if (GB_CURRENT != null) parent.parent.GB_hide();
		    if (set_focus != '' && set_focus != undefined) {
		    	set_focus.focus();
				if ($(set_focus)!=null && $(set_focus).className == 'inp_text') $(set_focus).className = 'inp_text_err';
		    	}
		   return false;
		   }
}

}


function show_message(text){
	if (text==undefined) text = 'Обработка данных';
	var top = (document.body.scrollTop>0) ? document.body.scrollTop : document.documentElement.scrollTop;
	$('loading-box').style.width = '270px';
	$('loading-box').style.textAlign = 'center';
	$('loading-box').style.display = 'block';
    	$('loading-actions').style.display = 'none';
    	$('loading-actions-confirm').style.display = 'none';
	if (self.screen) $('loading-box').style.top = (parseInt(top,10)+(screen.height/2)-200)+'px';
	else $('loading-box').style.top = (parseInt(top,10)+(document.body.clientHeight/2)-90)+'px';
	$('loading-box').style.left = ((document.body.clientWidth/2)-100)+'px';

	var new_height = $('loading-box').offsetHeight;
	var top = (document.body.scrollTop>0) ? document.body.scrollTop : document.documentElement.scrollTop;
	//var scr_height=0; if (self.screen) scr_height = screen.height
	//else if (self.java) { var jkit = java.awt.Toolkit.getDefaultToolkit(); var scrsize = jkit.getScreenSize(); scr_height = scrsize.height;	}
	//var body_height = (scr_height>0 && document.body.clientHeight>scr_height) ? scr_height-150 : document.body.clientHeight;
	body_height = document.body.clientHeight;
	var new_top = (parseInt(top,10)+(body_height/2)-(new_height/2)-30);
	$('loading-box').style.top = new_top+'px';
	var new_width = $('loading-box').offsetWidth;
   	$('loading-box').style.left = ((document.body.clientWidth/2)-(new_width/2))+'px';

	$('loading-img').style.display = '';
	$('loading-text').innerHTML = text+', пожалуйста подождите...';

}

function close_message(status, text, focus){

    OK = false;
	$('loading-box').style.display = 'block';
	$('loading-box').style.textAlign = 'left';
	$('loading-box').style.left = '0px';
	if (navigator.appName == 'Opera') {
	$('loading-box').style.width = '270px';
	$('loading-box').style.height = '50px';
	}
	else {
	$('loading-box').style.width = 'auto';
	$('loading-box').style.height = 'auto';
	}

   	$('loading-actions').style.display = 'none';
   	$('loading-actions-confirm').style.display = 'none';

	if (status==undefined) {
		$('loading-box').style.display = 'none';
		return false;
		}
	else if (status=='info') {
		$('loading-img').style.display = 'none';
		if (text==undefined) text = 'Информация';
		$('loading-text').innerHTML = '<br /><img class="image" src="/_admincp/_design/img/icons/warning.png" />&nbsp;'+text+'';
	    $('loading-actions').style.display = '';
	} else if (status=='confirm') {
		OK = true;
		$('loading-img').style.display = 'none';
		if (text==undefined) text = 'Информация';
		$('loading-text').innerHTML = '<br />&nbsp;'+text+'';     //<img class="image" src="/_admincp/_design/img/icons/warning.png" />
	    $('loading-actions').style.display = 'none';
	    $('loading-actions-confirm').style.display = '';
	}
	else if (status=='error') {
		$('loading-img').style.display = 'none';
		if (text==undefined) text = 'Произошла ошибка';
		$('loading-text').innerHTML = '<br /><img class="image" src="/_admincp/_design/img/icons/error.png" />&nbsp;'+text+'';
	    $('loading-actions').style.display = '';
	}

	var new_height = $('loading-box').offsetHeight;
	var top = (document.body.scrollTop>0) ? document.body.scrollTop : document.documentElement.scrollTop;
	$('loading-box').style.top = (parseInt(top,10)+(document.body.clientHeight/2)-(new_height/2)-30)+'px';
	var new_width = $('loading-box').offsetWidth;
   	$('loading-box').style.left = ((document.body.clientWidth/2)-(new_width/2))+'px';

	if (focus!=undefined && $(focus)!=null) {
		set_focus = $(focus);
        if ($(set_focus)!=null && $(set_focus).className == 'inp_text') { $(set_focus).className = 'inp_text_err'; }
		}
	else set_focus = '';

	$('loading-box').focus();

}


function change_class(e){
 if (e!=null && e.value!='') e.className = 'inp_text';
}
function FormCheckEmail(id, user_id){
    var e = $(id);
	if (e!=null) {
		if (e.value=='') close_message('error', 'Необходимо ввести email адрес', e.id);
		else if (/^[\w\-\.]{2,32}\@[\w\-\.]+\.[a-zA-Z0-9]{2,5}$/i.test(e.value)==false) close_message('error', 'Некорректно введен email адрес', e.id);
		else if (FormCheckLogin(e, 'Email', user_id, 'Необходимо ввести email адрес', 'Введенный email адрес уже существует')) return true;
    } else close_message('error', 'Неверно указан елемент');

return false;
}


function FormCheckLogin(e, name, user_id, errtext1, errtext2) {

	var value = e.value;
	if (value=='') { close_message('error', errtext1, e.id); return false; }
	else {
	if (name=='Name' && $('Email').type == 'text'){
			 if (/^[\w-\.]{2,64}$/i.test(value)==false) { close_message('error', 'Некорректно введено имя пользователя', e.id); return false;}
			 else if (/admin|root|support/i.test(value)==true) { close_message('error', 'В имени пользователя найдены запрещенные слова, попробуйте другой логин', e.id); return false;}
			 }

	  var req = new JsHttpRequest();
		req.open(null, '/js/_ajax/check_regname.php', true);
		var data = { 'Name': name, 'Value': value, 'UserID': user_id };
	    	req.send(data);

	    	req.onreadystatechange = function() {
	    		$('debug').innerHTML = req.responseText;
				if (req.readyState == 4) if (req.responseJS.status>0) close_message('error', errtext2, e.id);
	    	}

	 	}

}



function FormCheckName (el,id,showerr,elfocus,errmsg) {
	if ((ie||ns6) && el && $('f'+id)) {
	value = el.value;
	if (/[\||\'|\<|\>|\"|\!|\$|\@|\&\~\*\+]/.test(value)) {
		el.className = 'inp_text_err';
		errs[id] = 1;
		if (showerr == 1) {
			$('f'+id).innerHTML = errmsg;
		}
		if (elfocus == 1) {
			el.focus();
		}
	}
	else if ((errs[id] == 1 && errmsg.toLowerCase() == $('f'+id).innerHTML.toLowerCase()) || !errs[id]) {

		$('f'+id).innerHTML = '';
		el.className = 'inp_text_hover';
		errs[id] = 0;
		if (elfocus == 1) {
			el.focus();
		}
	}
	}
}

function FormCheckEmpty (el,id,len,showerr,elfocus,errmsg) {
	if ((ie||ns6) && el && $('f'+id)) {
	value = el.value;
	if (el.value.replace(/ /gi,"").length < len) {
		el.className = 'inp_text_err';
		errs[id] = 1;
		if (showerr == 1) {
			$('f'+id).innerHTML = errmsg;
		}
		if (elfocus == 1) {
			el.focus();
		}
	}
	else if ((errs[id] == 1 && errmsg.toLowerCase() == $('f'+id).innerHTML.toLowerCase()) || !errs[id]) {
		$('f'+id).innerHTML = '';
		el.className = 'inp_text_hover';
		errs[id] = 0;
		if (elfocus == 1) {
			el.focus();
		}
	}
	}
}


function CheckForm ( type, el, id, showerr, elfocus, errmsg )
{
	if (type==undefined||type==null) type = 'empty';
    alert(type[0]);
	if ((ie||ns6)&&el)
	{
		var value=el.value.trim();
		var regexp=null;

		switch (type)
		{
			case 'int':
			 regexp = /^(\d{1,3})$/;
			 break;
		}
	}
}

function check_form_errors(form_id){
var t = eval('checkFields_'+form_id);
var mas = (t) ? t : null;
if (!mas) return false;

for (var i in mas)
	if ($('fields'+i)){
		var fname = ($('fname'+i)) ? ' "'+$('fname'+i).innerHTML+'"' : '';
		var value = $('fields'+i).value;
			if ((value == '' || value == 0) && mas[i] == 1) {
				if ($('fields'+i).type == 'text') close_message('error', 'Необходимо заполнить поле'+fname, 'fields'+i);
				else close_message('error', 'Необходимо выбрать значение в поле'+fname, 'fields'+i);
				return false;
			} else if (/e-?mail/i.test(fname) && /^[\w\-\.]+\@[\w\-\.]+\.[a-z]{2,5}$/i.test(value)==false && ((value.length>0 && mas[i] == 0) || mas[i] == 1)) {
				close_message('error', 'Некорректно введен email адрес', 'fields'+i);
				return false;
			}
	}


return true;
}

function send_form_data(form_id){
if (check_form_errors(form_id) == false) return false;
else {
	var fdata = $('form_data'+form_id);
	var fields_value = new Array(fdata.length);
	for (var i=0; i<fdata.length; i++) fields_value[fdata.elements[i].name] = fdata.elements[i];

  		var req = new JsHttpRequest();
		req.open(null, '/js/_ajax/messages/send_form_data.php', true);
		var data = { 'form_id': form_id, 'data': fields_value, 'back_link' : eval('back_link'+form_id) };
        req.send(data);

		show_message('Отправление данных');

    	req.onreadystatechange = function() {
		//$('debug').innerHTML = req.responseText;

		  if (req.readyState == 4) {

		  var message = req.responseJS.result;
		  var errors = req.responseJS.errors;
          var focus = req.responseJS.focus;

            if (errors != '') close_message('error', errors, focus);
            else {
		        if (message) {
		        	close_message('info', message);
		        	$('form_data'+form_id).reset();
		        	reImg('iCodeForm'+form_id);
					//for (var i=0; i<fdata.length; i++) fdata.elements[i].value = '';
		        }
				else close_message();
            }

		   }
		}

}

}


function reImg(id){
	if ($(id)==null) id = 'iCode';
	var ndate = new Date().getTime();
	$(id).src = "inc/Modules/antibot.php?" + ndate;
}
