// AJAX for DVD Rental list
// initialize XMLHttpRequest object
var dr_obj=null;
var debug_dr_ok = 'n';  // 'y' or 'n'
// send http request
function dr_readSvrData(url) {
//alert("ajax_dr.js ---1---; url="+url);
// check for existing requests
dr_obj=null
// code for Mozilla, etc.
if (window.XMLHttpRequest) {
dr_obj = new XMLHttpRequest();
}
// code for IE
else if (window.ActiveXObject)
{
dr_obj=new ActiveXObject("Microsoft.XMLHTTP")
} else {
// Ajax is not supported by the browser
dr_obj=null;
return false;
}
//alert("ajax_dr.js dr_readSvrData---2---; url="+url);
// assign state handler and return obj handler
// This call won't stop the flow (fork to a parallel process)
dr_obj.onreadystatechange=dr_stateChecker;
//alert("ajax_dr.js dr_readSvrData---3---; ");
// open socket connection
// open("method", "URL"[, asyncFlag[, "userName"[, "password"]]])
try {
dr_obj.open('GET', url, true);
} catch (e) {
alert("open URL error: "+e);
}
// send request
dr_obj.send(null);
//alert("ajax_dr.js ---4---;");
} // dr_readSvrData(url)
// check request reponse flag ( obj.readyState )
// 0 = uninitialized
// 1 = loading
// 2 = loaded
// 3 = interactive
// 4 = complete
// It will loop until state=4 is reached
function dr_stateChecker(){
// if request is completed
if(dr_obj.readyState==4){
// if status == 200 display text file
// Numeric code returned by server,
// such as 404 for "Not Found"
//         200 for "OK"
if (dr_obj.status == 200) {
// Good. display data into Div
//alert("ajax_dr.js -- ajax return_text="+ dr_obj.responseText);
// Turn text string {aaa:xxx, bbb:yyy, ccc:zzz} into object
var result = eval('(' + dr_obj.responseText + ')');
dr_displayData(result);
} else {
// ajax error
if (debug_dr_ok == 'y') {
// display debug status
document.getElementById('dr_ajax').innerHTML= "<font style='font-family: arial; font-size: 12px; color:666666; line-height: 1.4;'>Failed to get response:"+ dr_obj.statusText +"; status code="+dr_obj.status+"<br> ResponseText:"+dr_obj.responseText+" </font>";
}
}
//alert("ajax_dr.js -- ??? state="+dr_obj.readyState);
} else if(dr_obj.readyState==1){
// --- a loading state. It will keep looping
// debug
//alert("ajax_dr.js -- still loading.... dr_stateChecker() state="+dr_obj.readyState);
} else {
// debug
//alert("ajax_dr.js -- perl failure in dr_stateChecker() state="+dr_obj.readyState);
}
} // dr_stateChecker()
function dr_displayData(result) {
var displayText = "";
var op_code = result.op_code;
var crawl_ok = result.crawl_ok;
var prevOffSet = result.prevOffSet;
var nextOffSet = result.nextOffSet;
if (op_code == "err") {
displayText += " &nbsp; <font color='red'>"+ result.err_reason + "("+result.err_tag+")</font>";
document.getElementById('dr_ajax').innerHTML=displayText;
} else if (crawl_ok == "yes") {
//var arr_size = result.arr_loop.length;
var arr_size = result.arrSize;
var row_1_size = 4;
if (row_1_size > arr_size) {
row_1_size = arr_size;
}
var row_2_size = 8;
if (row_2_size > arr_size) {
row_2_size = arr_size;
}
//alert("ajax_dr.js -- ajax title="+ result.arr_loop[0].DrIPtr);
displayText += "<Table border=0 cellspacing=0 cellpadding=0 width=100%>";
displayText += "<tr>";
displayText += "<td width=12></td>";
displayText += "<td align='left' valign='middle' width='267' height=35>";
displayText += "<font style='font-family: arial; font-weight: bold; font-size: 16px; color: #FF0000;'>Popular Movie Torrents </font>";
displayText += "</td>";
displayText += "<td align='right' valign='middle' width='167'>";
displayText += "<Table border=0 cellspacing=0 cellpadding=0>";
displayText += "<tr>";
displayText += "<td><font style='font-family: arial; font-size: 12px; color: #acacac;'>MORE </font></td>";
displayText += "<td width=10></td>";
displayText += "<Td><a href=\"javascript:dr_readSvrData('http://mongie.navidot.com/cgi-bin/ajax_dr.pl?thisOffSet="+prevOffSet+"&idx="+result.idx+"');\"><img src='http://mongie.navidot.com/images/arrow_grey_left.gif' border='0' id='left_go' onmouseover=\"document.getElementById('left_go').src='http://mongie.navidot.com/images/arrow_green_left.gif'\" onmouseout=\"document.getElementById('left_go').src='http://mongie.navidot.com/images/arrow_grey_left.gif'\"></a></td>";
displayText += "<Td><a href=\"javascript:dr_readSvrData('http://mongie.navidot.com/cgi-bin/ajax_dr.pl?thisOffSet="+nextOffSet+"&idx="+result.idx+"');\"><img src='http://mongie.navidot.com/images/arrow_grey_right.gif' border='0' id='right_go' onmouseover=\"document.getElementById('right_go').src='http://mongie.navidot.com/images/arrow_green_right.gif'\" onmouseout=\"document.getElementById('right_go').src='http://mongie.navidot.com/images/arrow_grey_right.gif'\"></a></td>";
displayText += "</tr>";
displayText += "</table>";
displayText += "</td>";
displayText += "<td width=12></td>";
displayText += "</tr>";
displayText += "</table>";
displayText += "<table border='0' cellspacing='0' cellpadding='0'><tr><td height='6'></td></tr></table>";
displayText += "<Table border=0 cellspacing=0 cellpadding=0 width=100%>";
displayText += "<tr>";
displayText += "<td width=11></td>";
for (var sIdx=0;sIdx<row_1_size;sIdx++) {
displayText += "<td width='100' valign='top' align='center'>";
displayText += "<table border='0' cellspacing='0' cellpadding='0'>";
displayText += "<tr><td height=150 valign=top><a href=\"javascript:goItem('"+result.arr_loop[sIdx].DrIPtr+"');\"><img src='"+result.arr_loop[sIdx].DrImg+"' border=0></a></td></tr>";
displayText += "<tr><td height='6'></td></tr>";
displayText += "<tr><td align=center>";
displayText += "<a href=\"javascript:goItem('"+result.arr_loop[sIdx].DrIPtr+"');\" class='latest_dvd'>"+result.arr_loop[sIdx].DrTitle+"</a>";
displayText += "</td>";
displayText += "</tr></table>";
displayText += "</td>";
displayText += "<td width=11></td>";
}
displayText += "</tr>";
displayText += "</table>";
displayText += "<table border='0' cellspacing='0' cellpadding='0'><tr><td height='15'></td></tr></table>";
displayText += "<Table border=0 cellspacing=0 cellpadding=0 width=100%>";
displayText += "<tr>";
displayText += "<td width=11></td>";
for (var sIdx=4;sIdx<row_2_size;sIdx++) {
displayText += "<td width='100' valign='top' align='center'>";
displayText += "<table border='0' cellspacing='0' cellpadding='0'>";
displayText += "<tr><td height=150 valign=top><a href=\"javascript:goItem('"+result.arr_loop[sIdx].DrIPtr+"');\"><img src='"+result.arr_loop[sIdx].DrImg+"' border=0></a></td></tr>";
displayText += "<tr><td height='6'></td></tr>";
displayText += "<tr><td align=center>";
displayText += "<a href=\"javascript:goItem('"+result.arr_loop[sIdx].DrIPtr+"');\" class='latest_dvd'>"+result.arr_loop[sIdx].DrTitle+"</a>";
displayText += "</td>";
displayText += "</tr></table>";
displayText += "</td>";
displayText += "<td width=11></td>";
}
displayText += "</tr>";
displayText += "</table>";
// use line below as iteration reference (e.g. if <reload> is needed)
// displayText += "<a href=\"javascript:dr_next('http://mongie.navidot.com/cgi-bin/bt_main.pl?idx="+result.idx+"&itemPtr="+result.itemPtr+"');\" class=\"bt_r\">Reload</a>";
// ------ debug -------
// To debug turn on the line below so you can tell if the Ajax and Perl's return
// alert("debug -- bt_ajax. \n"+displayText);
// ------ End debug -------
document.getElementById('dr_ajax').innerHTML=displayText;
} else {
displayText += " &nbsp; <font color='red'>Ajax failed. source ID="+result.src_id+", Flag="+result.debug_flag +".</font>";
document.getElementById('dr_ajax').innerHTML=displayText;
//alert("ajax_dr.js -- perl failure. source ID="+result.src_id+", Flag="+result.debug_flag);
}
// following code used to display HTML in a text area
//  if (document.main_form) {
//    if (document.main_form.debugArea) {
//      document.main_form.debugArea.value = displayText;
//    }
//  }
}
function dr_next (url) {
var html_code = "<table><tr><td height=10></td></tr></table><table width=100%><tr><td align=center><img src='http://mongie.navidot.com/images/loading.gif' border=0></td></tr><tr><td height=10></td></tr><tr><td><font style='font-family: verdana; font-size: 12px; color:993300'> Please wait while we are updating the torrent info. It may take about 30 seconds to a minute... </font></td></tr><tr><td height=8></td></tr></table>";
// bring back the default display
document.getElementById('dr_ajax').innerHTML=html_code;
// Call ajax
dr_readSvrData(url);
//document.location.reload();
}
// require a pre-defined global variable: itemPtr
