Подскажите, пожалуйста. Такая тема:
Кнопка, при клике выполняет две функции
1. Поднимает объявление
2. Пока время для следующего подъема (7 дней) не пришло, при нажатии на неё, открывается модальное окно с текстом о сроках до следующего подъема.
Вторая функция (вывод модального окна) не удобна. Пользователь хочет, чтобы при заходе на свою страницу, была: либо активная кнопка для подъема, либо на месте кнопки (без действия onclick) был текст о сроках следующего подъема.
А когда время приходит для подъема – кнопка становится активной
Пробовал с такой кнопкой:
<div id="txt"></div>
<a href="javascript
://" onclick="up($ID$,$LASTMOD$,$TIMESTAMP$,this);" title="Поднять объявление"><input value="Поднять" onclick="this.disabled=1; this.value='Скрипт сработал'; " type="button" /></a>
Вместо:
alert( txt );
Ставил:
document.getElementById('txt').innerHTML = txt;
Минусы:
Текст выходит рядом с кнопкой, но:
1.Надо все равно нажимать на кнопку
2. На следующих объявлениях кнопка не работает
Буду благодарен за помощь!
Вот родные коды:
1
<a href="javascript://" onclick="up($ID$,$LASTMOD$,$TIMESTAMP$,this);" title="Поднять объявление"><img src="http://></a>
2
<script type="text/javascript">
timeDiff=Math.round(((new Date($YEAR$,parseInt('$MONTH$')-1,parseInt('$DAY$'),parseInt('<?substr($TIME$,0,2)?>'),parseInt('<?substr($TIME$,3)?>'))).getTime() - (new Date()).getTime())/1000)+30;
function currTime(){
var time=Math.round((new Date()).getTime()/1000);
if(window.timeDiff) time+=window.timeDiff;
return time;}
function n2(num){ return (num<10 ? '0' : '') + num;}
function up(id,lastModTS,addTS,oLink){
var dMod=new Date();
dMod.setTime(lastModTS*1000);
var nextTS=lastModTS+7*24*60*60+50;
var secLeft=nextTS - currTime();
if(secLeft > 0) {
var minutes=secLeft/60;
var hours=minutes/60;
var days=hours/24;
var nextD=new Date();
nextD.setTime(nextTS*1000);
var nextDay=n2(nextD.getDate())+'.'+n2(nextD.getMonth()+1)+'.'+nextD.getFullYear();
var nextTime=nextD.toTimeString().substr(0,5);
var txt='Поднимать объявление можно не чаще чем раз в неделю.\n\n'+
'Это объявление можно будет поднять через ' +
(days >= 1 ? '' + Math.round(days) + (days < 1.5 ? ' день' : (days<4.5 ? ' дня' : ' дней')) + ', ' + nextDay + ',':
(hours > 0.8 ? '' + Math.round(hours) + ' час.,' : '' + (Math.round(minutes)+1) + ' мин.,')) + ' после ' + nextTime ; alert( txt ); return;}
var btnSrc;
var oBtn;
if(oLink){ oLink.onclick=''; oBtn=oLink.firstChild; btnSrc=oBtn.src; oBtn.src='/ajax-load.gif'; }
$.get('/board/0-0-0-' + id + '-13', function(data){var form=$('#addEntForm', data); _uPostForm(form, {success: function(){if(oBtn) oBtn.scr=btnSrc; alert("Объявление поднято"); window.location.href='/board/0-0-$USER_ID$-0-17';}});})
}
</script>