function getCookie(n){ var c=" "+document.cookie,s=" "+n+"=",r=null,o=0,e=0; if (c.length>0){ o=c.indexOf(s); if (o!=-1){ o+=s.length;e=c.indexOf(";",o) if(e==-1){e=c.length} r=unescape(c.substring(o,e)); } } return(r) } function setCookie (name, value, expires, path, domain, secure) { document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); } function delCookie(n,p,d){ if (getCookie(n)){ document.cookie = n + "=" + ((p) ? "; path=" + p : "") + ((d) ? "; domain=" + d : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; } } function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string'){element = document.getElementById(element)} if (arguments.length == 1){return element} elements[elements.length] = element; } return elements; } jlt = {user_type: getCookie('user_type')} function right_col_hide(){ if (jlt.user_type && jlt.user_type == 'R'){$('page_right_column').style.display = 'none'} if ($('section_contact_r')){ if (jlt.user_type && jlt.user_type == 'R'){$('section_contact_r').style.display = 'block'} } } function display_pay_block() { alert("Внимание!\n"+"На Joblist.ru возможно использование только одной формы оплаты, то есть если Вы производили "+ "оплату от юридического лица, то последующие счета на оплату также должны выставляться "+ "от юридического лица, а если от физического, то и последующие от физического.\n"+ "Данное ограничение установлено для корректной подготовки документов о предоставленных "+ "услугах для Вашей бухгалтерии.\n\n"+ "Если Вам необходимо сменить форму оплаты, пожалуйста, свяжитесь с Вашим менеджером на Joblist.ru"+ "или перезвоните по телефону: 8 (495) 788-68-69."); return false; } /* Подтверждение на удаление тарифного плана id возможно будет использоваться в будущем для Ajax */ function del_tariff(id) { if (confirm('Вы уверены, что хотите удалить заказанный тарифный план?')) { return true; } return false; } /* Клик по CHECKBOX'у с тарифом */ function select_tariff(tar) { setTimeout('recalc_tariff()',100); return true; } /* Пересчет муммы при заказе тарифа Вынесено отдельно, так как разные браузеры в разный момент времени менют .checked */ function recalc_tariff() { total_sum=0; for(var tar in tariff) { if (document.getElementById(tar).checked) { var price=tariff[tar]; total_sum+=price; } } //Теперь у нас есть общая сумма var delta=total_sum-Number(document.getElementById('tariff_sum').innerHTML); //Надо изменить client_rest по delta if (delta!=0) { client_rest=Number(client_rest)-Number(delta); } // Сравнить client_rest с нулем и вывести соответствующую надпись на кнопке if (client_rest>=0) { document.getElementById('order_tariff_button').value='Заказать'; } else { document.getElementById('order_tariff_button').value='Включить в заказ'; } document.getElementById('tariff_sum').innerHTML=total_sum; } /* Отобразить форму */ function show_form(fr) { if (document.getElementById('form_order_'+fr)!=null) { if (document.getElementById('show_'+fr)!=null) { document.getElementById('show_'+fr).style.display="none"; } document.getElementById('form_order_'+fr).style.display="block"; document.getElementById('order_'+fr+'_button').focus(); } /* if (document.getElementById('form2_order_'+fr)!=null) { document.getElementById('form2_order_'+fr).style.display="block"; }*/ return false; } /* /Скрыть форму */ function hide_form(fr) { if (document.getElementById('form_order_'+fr)!=null) { document.getElementById('show_'+fr).style.display="block"; document.getElementById('form_order_'+fr).style.display="none"; } /* if (document.getElementById('form2_order_'+fr)!=null) { document.getElementById('form2_order_'+fr).style.display="none"; }*/ return false; } /* Обработчик OnChange service_name - имя услуги, если у услуги своя форма. Или строка вида "родительская_форма:имя_услуги" q - не обязательный параметр (если есть - то данные о числе единиц услуги берутся из него, а не из GUI) checkbox_is_clicked - не обязательный параметр, номер кликнутого checkbox'а number_changed - не обязательный параметр, номер ищмененного поля Более того - если есть поле для ввода общего кол-ва, переданное число пишется туда */ function onchange_handler(service_name,q,checkbox_is_clicked,number_changed) { setTimeout('recalc_packages("'+service_name+'","'+q+'",'+checkbox_is_clicked+',"'+number_changed+'")',100); return true; } function recalc_packages(service_name,q,checkbox_is_clicked,number_changed) { var str_out=''; var total=0; var total_n=0; var main_form=false; if (service_name.indexOf(":")!=-1) { var service_forms=service_name.split(":"); main_form=service_forms[0]; service_name=service_forms[1]; } if ((checkbox_is_clicked==undefined) || (checkbox_is_clicked=='') || (checkbox_is_clicked=='undefined')) { checkbox_is_clicked=false; } if (!(checkbox_is_clicked)) { if (document.getElementById('packages_order_'+service_name+'_'+number_changed)!=null) { if (document.getElementById('packages_order_'+service_name+'_'+number_changed).value=='') { if (document.getElementById('packages_checkbox_'+service_name+'_'+number_changed)!=null) { document.getElementById('packages_checkbox_'+service_name+'_'+number_changed).checked=false; } } } } var has_total=(document.getElementById('total_order_'+service_name)!=null); if (q>0) { total_n=q; if (has_total) { if (total_n>0) { document.getElementById('total_order_'+service_name).value=total_n; } else { document.getElementById('total_order_'+service_name).value=''; } } } else { if (has_total) { if (document.getElementById('total_order_'+service_name).value>0) { total_n=document.getElementById('total_order_'+service_name).value; } } if (total_n==0) { for(var i=0;i0) && (!(checkbox_is_clicked)))//Если выставлено число и кликнули НЕ Checkbox { n=document.getElementById('packages_order_'+service_name+'_'+i).value; } else { if (document.getElementById('packages_checkbox_'+service_name+'_'+i).checked)//Выставлен Checkbox { if (document.getElementById('packages_order_'+service_name+'_'+i).value>0) { n=document.getElementById('packages_order_'+service_name+'_'+i).value; } else { if ((document.getElementById('packages_order_'+service_name+'_'+i).value=='') && (is_focused('packages_order_'+service_name+'_'+i))) { n=0;//поле редактируют и все стерли } else { n=1; } } } } } if (n>0) { total_n+=n*layout_packages[service_name][i]; //Цену считаем после перераскидывания по пакетам //total+=layout_prices[service_name][i]*n*layout_packages[service_name][i]; } } } } //Перерасчет пакетов и вывод доп. строк (зачем - непонятно, но так нарисовано) for(var i=layout_packages[service_name].length-1;i>=0;i--) { var n=Math.floor(total_n/layout_packages[service_name][i]); if (n>0) { if ((document.getElementById('packages_checkbox_'+service_name+'_'+i)!=null) && (!(has_total)))//Ставим Checkbox только если нет поля total { document.getElementById('packages_checkbox_'+service_name+'_'+i).checked=true; } if (document.getElementById('packages_order_'+service_name+'_'+i)!=null) { if (n>0) { document.getElementById('packages_order_'+service_name+'_'+i).value=n; } else { document.getElementById('packages_order_'+service_name+'_'+i).value=''; } } total_n=Number(total_n)-Number(n*layout_packages[service_name][i]); total=Number(total)+Number(layout_prices[service_name][i]*n*layout_packages[service_name][i]); str_out+='Стоимость '+(n*layout_packages[service_name][i])+ ' '+service_plural_name[service_name]+' '+ (layout_prices[service_name][i]*n*layout_packages[service_name][i])+ ' руб. Цена за 1 '+service_single_name[service_name]+' - '+layout_prices[service_name][i]+' руб.
'; } else { //alert(1); if ((document.getElementById('packages_checkbox_'+service_name+'_'+i)!=null) && (!(has_total)))//Ставим Checkbox только если нет поля total { //alert(2); document.getElementById('packages_checkbox_'+service_name+'_'+i).checked=false; //alert(3); } if (document.getElementById('packages_order_'+service_name+'_'+i)!=null) { document.getElementById('packages_order_'+service_name+'_'+i).value=''; } } } var obj=document.getElementById('order_'+service_name+'_message'); var delta=total-Number(document.getElementById('order_'+service_name+'_sum').innerHTML); document.getElementById('order_'+service_name+'_sum').innerHTML=total; document.getElementById('packages_order_'+service_name+'_str_out').innerHTML=str_out; if (delta!=0) { client_rest=Number(client_rest)-Number(delta); } if (client_rest<0) { if (main_form) { activate_flags(main_form,1); } else { if (document.getElementById('order_'+service_name+'_button').value!='Внести изменения') { document.getElementById('order_'+service_name+'_button').value='Включить в заказ'; } document.getElementById('order_'+service_name+'_flag').value=1; } if (obj!=null) { obj.innerHTML='Внимание! У Вас недостаточно средств на счете. Вы можете включить заказ в счет. После внесения средств Вы сможете включить услугу.'; } } else { if (main_form) { if (document.getElementById('order_'+service_name+'_button').value!='Внести изменения') { activate_flags(main_form,0); } else { activate_flags(main_form,1); } } else { if (document.getElementById('order_'+service_name+'_button').value!='Внести изменения') { document.getElementById('order_'+service_name+'_button').value='Заказать'; document.getElementById('order_'+service_name+'_flag').value=0; } } if (obj!=null) { obj.innerHTML=''; } } //alert(service_name+'=='+total); if (main_form) { if (delta>0) { document.getElementById('form_order_'+main_form).style.display='block'; } document.getElementById('order_'+main_form+'_sum').innerHTML=Number(document.getElementById('order_'+main_form+'_sum').innerHTML)+delta; } else { if (delta>0) { document.getElementById('form_order_'+service_name).style.display='block'; } } /* if ((service_name=='home') || (service_name=='hot_week')) { document.getElementById('order_home_pushing_sum').innerHTML=Number(document.getElementById('order_home_pushing_sum').innerHTML)+delta; } if ((service_name=='days') ||(service_name=='toplogo') || (service_name=='vacban') || (service_name=='vac_post')) { document.getElementById('order_pushing_sum').innerHTML=Number(document.getElementById('order_pushing_sum').innerHTML)+delta; } */ } /* Возвращает true, если элемент с заданным id в фокусе. У элемента должны быть прописаны соотв. обрабюотчики OnFocus и OnBlur */ function is_focused(id) { return focused[id]; } function onfocus_handler(id) { focused[id]=true; } function onblur_handler(id) { focused[id]=false; } /* Установить/сбросить флаги показывающие необходимость включения в заказ Также изменяет вид кнопки заказа на общей форме (main_from) */ function activate_flags(main_form,flag_value) { if(document.getElementById('order_'+main_form+'_button').value!='Внести изменения') { if (flag_value==1) { document.getElementById('order_'+main_form+'_button').value='Включить в заказ'; } else { document.getElementById('order_'+main_form+'_button').value='Заказать'; } } if (main_form=='home_pushing') { document.getElementById('order_home_flag').value=flag_value; document.getElementById('order_hot_week_flag').value=flag_value; } if (main_form=='pushing') { document.getElementById('order_days_flag').value=flag_value; document.getElementById('order_toplogo_flag').value=flag_value; document.getElementById('order_vacban_flag').value=flag_value; document.getElementById('order_vac_post_flag').value=flag_value; } } /* Обработчик клика на CHECKBOX для услуг, для которых есть поле ввода общего кол-ва service_name - название услуги i - номер Checkbox'а */ function checkbox_clicked(service_name,i) { setTimeout('checkbox_handler("'+service_name+'","'+i+'")',100); } function checkbox_handler(service_name,i) { var service_name_clean; if (service_name.indexOf(":")!=-1) { var service_forms=service_name.split(":"); service_name_clean=service_forms[1]; } else { service_name_clean=service_name; } if (document.getElementById('total_order_'+service_name_clean)!=null) { document.getElementById('total_order_'+service_name_clean).value='';//По любому при клике - тут должна быть пустая строка } onchange_handler(service_name); return true; } /* Функция проверки - возвращает true если хоть один взведен */ //function check_checkboxes(service_name,i) function check_checkboxes(service_name) { for(var j=0;j