var request = false; var request_id; var def_images = new Array(); var timer_id; var the_ob; function $(id) { return document.getElementById(id); } function search(e, trigger) { var keynum; if (trigger.type == 'text') { if (window.event) // IE { keynum = e.keyCode } else if (e.which) // Netscape/Firefox/Opera { keynum = e.which } if ((keynum == 13) || (keynum == 10)) { _search(); return false; } else { return true; } } else if (trigger.type == 'button') { _search(); } } function _search() { var q; q = $('searchText').value; if (q.length > 0) { var flag = 1; if ($('searchInNames').checked == true) { if ($('searchInDescription').checked == true) { flag = 1|2; } else { flag = 1; } } else if ($('searchInDescription').checked == true) { flag = 2; } q = q.replace(/&/, '%26'); document.location = '/?q=' + encodeURIComponent(q) + '&' + 'flag=' + flag; } } function changedFlags(sender) { if (($('searchInNames').checked == false) && ($('searchInDescription').checked == false)) { $('searchInNames').checked = true; $('searchInDescription').checked = true; sender.checked = false; } } function vote(for_what, stars_count) { if (request != false) { window.alert('Please wait, other information already in sending process...'); } else { request = getHTTPObject(); if (request) { request_id = for_what; request.onreadystatechange = vote_callback; request.open("post", "vote/?", true); request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); request.send('for_what=' + for_what + '&stars_count=' + stars_count); } else { window.alert('Your browser doesn\'t support AJAX technology, please update it to be able to vote!'); request = false; } } } function vote_callback() { if (request.readyState == 4) { if ((request.status == 200) || (request.status == 304)) { if (isNaN(request.responseText) == false) { if ((request.responseText >= 0) && (request.responseText <= 5)) { set_vote_stars(request_id, parseFloat(request.responseText)) set_vote_label(request_id, 'Thank you for voting!'); } else if (request.responseText == 6) { set_vote_label(request_id, 'Unable to process your vote!'); } else if (request.responseText == 7) { set_vote_label(request_id, 'You have already voted for this object today!'); } } } else { set_vote_labe('Couldn\'t send your vote, please try later.') } request = false; } } function set_vote_stars(vs_id, vs_stars) { var delta = vs_stars - parseInt(vs_stars / 0.5, 10) * 0.5; if (delta != 0) { if (delta < 0.25) { vs_stars -= delta; } else { vs_stars += (0.5 - delta); } } var full_stars_count = Math.floor(vs_stars); var half_stars_count = (full_stars_count == vs_stars) ? 0 : 1; var i = 0; while (i < full_stars_count) { var cur_ob = $('rat_' + vs_id + '_' + (i + 1)); if (cur_ob) { def_images[cur_ob.id] = 'images/voting_10.gif'; cur_ob.src = def_images[cur_ob.id]; } i++; } if (half_stars_count == 1) { var cur_ob = $('rat_' + vs_id + '_' + (i + 1)); if (cur_ob) { def_images[cur_ob.id] = 'images/voting_05.gif'; cur_ob.src = def_images[cur_ob.id]; } i++; } while (i < 5) { var cur_ob = $('rat_' + vs_id + '_' + (i + 1)); if (cur_ob) { def_images[cur_ob.id] = 'images/voting_00.gif'; cur_ob.src = def_images[cur_ob.id]; } i++; } } function set_vote_label(vl_id, vl_label) { alert(vl_label); } function handle_stars(ob) { var my_parts = ob.id.split('_'); for (var i = parseInt(my_parts[2], 10) + 1; i <= 5; i++) { var cur_id = my_parts[0] + '_' + my_parts[1] + '_' + i; if ((def_images[cur_id] != undefined) && (def_images[cur_id] != null)) { $(cur_id).src = def_images[cur_id]; def_images[cur_id] = null; } } the_ob = new Object(); the_ob.id = my_parts[0] + '_' + my_parts[1] + '_0'; } function rat_mouse_out(ob) { handle_stars(ob) timer_id = setTimeout('rat_mouse_out(the_ob)', 500); } function rat_mouse_over(ob) { clearTimeout(timer_id); var my_parts = ob.id.split('_'); handle_stars(ob); for (var i = 1; i <= parseInt(my_parts[2], 10) - 1; i++) { var cur_id = my_parts[0] + '_' + my_parts[1] + '_' + i; if ((def_images[cur_id] == undefined) || (def_images[cur_id] == null)) { def_images[cur_id] = $(cur_id).src; $(cur_id).src = 'images/voting_10_hover.gif'; } } if ((def_images[ob.id] == undefined) || (def_images[ob.id] == null)) { def_images[ob.id] = ob.src; } ob.src = 'images/voting_10_hover.gif'; } function rat_mouse_click(ob) { var my_parts = ob.id.split('_'); vote(my_parts[1], my_parts[2]); } function getHTTPObject() { var xhr = false; if (window.XMLHttpRequest) // Opera, Firefox, M$ IE7, ... { xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) // M$ IE5-6 { try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); // Newer version } catch(e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); // Older version } catch(e) { xhr = false; } } } return xhr; }