var browserName=navigator.appName;
var xmlhttp;
var start_root = "http://www.rottentomatoes.com";
var img_root = "http://images.rottentomatoes.com/images";
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
  try {
  xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
 } catch (e) {
  try {
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
  } catch (E) {
   xmlhttp=false
  }
 }
@else
 xmlhttp=false
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 try {
  xmlhttp = new XMLHttpRequest();
 } catch (e) {
  xmlhttp=false
 }
}
function myXMLHttpRequest() {
  var xmlhttplocal;
  try {
    xmlhttplocal= new ActiveXObject("Msxml2.XMLHTTP")
 } catch (e) {
  try {
    xmlhttplocal= new ActiveXObject("Microsoft.XMLHTTP")
  } catch (E) {
    xmlhttplocal=false;
  }
 }

if (!xmlhttplocal && typeof XMLHttpRequest!='undefined') {
 try {
  var xmlhttplocal = new XMLHttpRequest();
 } catch (e) {
  var xmlhttplocal=false;
  alert('couldn\'t create xmlhttp object');
 }
}
return(xmlhttplocal);
}

// Call ratings_rpc.php to handle data clensing and DB
// duties. "update_field" is a flag used to updated
// either the rating field or quote field in the DB.
// (since our UI is doing one or the other.)
// Variables:
//   "rating_display" :used to determine which
//     <div>'s for rating stars need to be updated.
//     currently, 3 options are [tmeter|mid|both]
//     (ie, update tmeter stars, single $mid stars, or both
function sndReq(update_field,id_num,id_type,user_id,user_vote,rate_url) {

//var vote = document.getElementById('user_vote').value;
rate_url = rate_url || "/"     // Set default value to "/" if rate_url not passed.
var user_quote;

if (document.getElementById('user_quote_'+id_num)) {
    user_quote = urlencode(escape(document.getElementById('user_quote_'+id_num).value));
} else {
    user_quote = '';
}

//alert("in sndReq, user_vote:" + user_vote);
if(update_field == 'rating') {
  var rating_display;
  var mid_rating = document.getElementById('unit_long'+id_num);
  
  if (document.getElementById('celeb_sidebar_rating')) {
    var celeb_sidebar_rating = document.getElementById('celeb_sidebar_rating');
  } else {
    var celeb_sidebar_rating = '';
  }
  
  if (document.getElementById('tomatometer_rating')) {
    var tmeter_rating = document.getElementById('tomatometer_rating');
  } else {
    var tmeter_rating = '';
  }
  
  if (!tmeter_rating) {
  	if ((browserName == "Netscape") && (document.getElementById('ratings_tabs'))) {
  		tmeter_rating = parent.document.getElementById('tomatometer_rating');
  	} else {
  		tmeter_rating = '';
  	}
  }
  
  if (!mid_rating) {
  	if ((browserName == "Netscape") && (document.getElementById('ratings_iframe'))) {
  		mid_rating = frames['ratings_iframe'].document.getElementById('unit_long'+id_num);
  	} else {
  		mid_rating = '';
  	}
  }
  
  if (celeb_sidebar_rating) {
    rating_display = 'celeb_sidebar';
  } else if(mid_rating && tmeter_rating && id_type != 'article') {
    rating_display = 'both';
  } else if(mid_rating) {
    rating_display = 'mid';
  } else if(tmeter_rating) {
    rating_display = 'tmeter';
  }
} 
//else if(update_field == 'quote') {
//  var element = document.getElementById('ratings_user_quote');
//  var user_quote = escape(document.getElementById('user_quote').value);
//  alert('in sndReq, user_quote: ' + user_quote);
//}

  if(user_id == '') {
    // User is not logged in
    // BE SURE TO CHANGE ENVIRONMENT WHEN PUSHING LIVE
//    alert('in sndReq - userid is empty');

    setCookie('rate_mid', id_num, 1, '/');
    setCookie('rate_rating', user_vote, 1, '/');
    setCookie('rate_quote', user_quote, 1, '/');
    setCookie('rate_type', id_type, 1, '/');
    setCookie('rate_update_field', update_field, 1, '/');
    setCookie('rate_url', rate_url, 1, '/');
    setCookie('bbbounceurl', '/db/movie/inc/ratings_login_rpc.php', 1, '/');

    window.location = start_root + "/vine/login.php";

  } else {
    // User is logged in, update rating or quote
    // Preemptive update of rating counter and Zero rating graphic
    // Not easy to update in ratings_rpc.php 
      updateRating(user_vote, id_num, id_type);
      if(user_vote == 0) {
        // Update zero rating div
        //alert('vote is 0, about to turn zero rating image on' + document.images['img_zero_rating'].src);
        changeDiv('ratings_zero_rating_'+id_num, '<a href="#" title="0 out of 10"  onClick="javascript:sndReq(\'rating\',\''+id_num+'\',\''+id_type+'\',\''+user_id+'\',\''+user_vote+'\');return false;" onMouseOver="javascript:img_zero_rating_'+id_num+'.src=\''+img_root+'/ratings/zero_rating_over.gif\';updateRating(\'0\',\''+id_num+'\',\''+id_type+'\');return false;" onMouseOut="javascript:img_zero_rating_'+id_num+'.src=\''+img_root+'/ratings/zero_rating_on.gif\';updateRating(0,\''+id_num+'\',\''+id_type+'\');return false;"><img src="'+img_root+'/ratings/zero_rating_on.gif" width="17" height="17" border="0" id="img_zero_rating_'+id_num+'" name="img_zero_rating_'+id_num+'" alt="0 out of 10" /></a>');
      }
    //alert('in sndReq - vote:' + '/db/movie/inc/ratings_rpc.php?update_field='+update_field+'&rating='+user_vote+'&id='+id_num+'&type='+id_type+'&uid='+user_id+'&user_quote='+user_quote+'&rating_display='+rating_display+'&rate_url='+rate_url);
    url = '/db/movie/inc/ratings_rpc.php';
    data = 'update_field='+update_field+'&rating='+user_vote+'&id='+id_num+'&type='+id_type+'&uid='+user_id+'&user_quote='+user_quote+'&rating_display='+rating_display+'&rate_url='+rate_url;

	if (update_field == 'article_comment') {
		var parent_currentid = document.getElementById('parent_currentid').value;

		data += '&parent_currentid='+parent_currentid;

		changeDiv('ratings_quote_status', '<div class="notice_box">Please wait while your comment is being added...</div>');
	}
	
    xmlhttp.open("POST", url, true);
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xmlhttp.send(data);
  }

  if ((update_field == 'rating') && (id_type == 'movie') && (rate_url == '/')) {
   window.open('/movies/user_ratings.php', 'user_ratings_popup', ''); 
  }
 
 
  // For movie object pages, once a rating is made then hide the user ratings and show the rate similar movies tab
  if ((update_field == 'rating') && (id_type == 'movie')) {
  /*
  	if ((browserName == "Netscape") && (document.getElementById('ratings_iframe')) && (rate_url.substr(0,24) != '/movies/user_ratings.php')) {
  		frames['ratings_iframe'].location.hash = 'rate';
  	} else */
    
    if ((rate_url.substr(0,24) != '/movies/user_ratings.php') && (!document.getElementById('billboard_ad_frame'))) {
  		window.location.hash = 'rate';

    		// For all other browsers automatically change from the user reviews to the rate similar movies div
		hideDiv('ratings_frame');
		showDiv('ratings_recommended_frame');
		changeClass('ratings_tab1_left', 'link_tab_left_off');
		changeTabs('ratings_tab',2,2);
  	}
  }
}

function handleResponse() {
    if(xmlhttp.readyState == 4){
      if (xmlhttp.status == 200){
       
        var response = xmlhttp.responseText;
        //alert("in handleResponse: " + response);
        var update = new Array();

        if(response.indexOf('|') != -1) {
            update = response.split('|');
            num_elements = update.length;

            // Process <div>|content pairs returned from ratings_rpc.php
            if(num_elements%2) {
              //-- Odd # of elements, make it even
              num_elements = num_elements - 2;
            } else {
              //-- Even # of elements. Subtract 1 to create the proper array index.
              num_elements = --num_elements; 
            }

//alert("about to do for loop " + update[4]);
            for(var loop = 0; loop <= num_elements; loop = loop + 2) {
            	if (document.getElementById(update[loop])) {
            		changeDiv(update[loop], update[loop + 1]);
            	} else if (!document.getElementById(update[loop])) {
  			if ((browserName == "Netscape") && (document.getElementById('ratings_tabs'))) {
  				changeParentDiv(update[loop], update[loop + 1]);
  			} else if ((browserName == "Netscape") && (document.getElementById('ratings_iframe'))) {
  				changeFrameDiv('ratings_iframe', update[loop], update[loop + 1]);
  			}
  		}
              //  alert(loop + " :" + update[loop] + " - " + update[loop + 1]);
            }
        }
      }
    }
}

//-- Function used to reflect current mouseover/mouseout rating
//-- of the rating stars
function updateRating(rating, id, type) {
  if(type == 'movie') {
    if (document.getElementById('ratings_counter_tmeter_'+id)) {
        if(rating != '' && rating != -1) {
            changeDiv('ratings_counter_tmeter_'+id, rating + '/10');
        } else {
            changeDiv('ratings_counter_tmeter_'+id, '');
        }
        
        // Update the values in the iframe for Firefox
    	if ((browserName == "Netscape") && (document.getElementById('ratings_iframe'))) {
  		if (rating == -1) {
  			frames['ratings_iframe'].document.getElementById('current-rating-user_'+id).className = 'current-rating rate0';
  			changeFrameDiv('ratings_iframe', 'ratings_counter_'+id, '<span></span>');
  		} else {
  			frames['ratings_iframe'].document.getElementById('current-rating-user_'+id).className = 'current-rating rate' + rating;
  			changeFrameDiv('ratings_iframe', 'ratings_counter_'+id, '<span>' + rating + '/10</span>');
  		}
  		
   		if (frames['ratings_iframe'].document.getElementById("img_zero_rating_"+id)) {
   			if(rating == 0) {
     				frames['ratings_iframe'].document.images["img_zero_rating_"+id].src = img_root + '/ratings/zero_rating_over.gif';
   			} else {
     				frames['ratings_iframe'].document.images["img_zero_rating_"+id].src = img_root + '/ratings/zero_rating_off.gif';
   			}
  		}
    	}
    } 
    
    // Do a check to see if in the iframe on the movie object page
    if ((browserName == "Netscape") && (document.getElementById('ratings_tabs'))) {
  	if (rating == -1) {
  		if (parent.document.getElementById('current-rating-tmeter_'+id)) {
  			parent.document.getElementById('current-rating-tmeter_'+id).className = 'current-rating rate0';
  		}
  		changeParentDiv('ratings_counter_tmeter_'+id, '<span></span>');
  	} else {
  		if (parent.document.getElementById('current-rating-tmeter_'+id)) {
  			parent.document.getElementById('current-rating-tmeter_'+id).className = 'current-rating rate' + rating;
  		}
  		changeParentDiv('ratings_counter_tmeter_'+id, '<span>' + rating + '/10</span>');
  	}
    }
  }
  
  if (rating == -1) {
  	changeDiv('ratings_counter_'+id, '<span></span>');
  } else {
  	changeDiv('ratings_counter_'+id, '<span>' + rating + '/10</span>');
  }

  if (document.getElementById("img_zero_rating_"+id)) {
  	if(rating == 0) {
    		document.images["img_zero_rating_"+id].src = img_root + '/ratings/zero_rating_over.gif';
  	} else {
    		document.images["img_zero_rating_"+id].src = img_root + '/ratings/zero_rating_off.gif';
  	}
  }

  //document.getElementById('user_vote_'+id).value = rating;
}

function changeDiv( div2show, content ) {
    var IE = (document.all) ? 1 : 0;
    var DOM = 0; 
    if (parseInt(navigator.appVersion) >=5) {DOM=1};

    // Grab the content from the requested "div" and show it in the "container"
    if (DOM) {
       if(document.getElementById(div2show)) {
         document.getElementById(div2show).innerHTML=content;
       }
    }
    else if(IE) {
       if(document.all[div2show]) {
         document.all[div2show].innerHTML=content;
       }
    }
}

function changeFrameDiv( frame2show, div2show, content) {
    // Grab the content from the requested "div" and show it in the "container"
    if(frames[frame2show].document.getElementById(div2show)) {
    	frames[frame2show].document.getElementById(div2show).innerHTML=content;
    }
}

function changeParentDiv( div2show, content) {
    // Grab the content from the requested "div" and show it in the "container"
    if(parent.document.getElementById(div2show)) {
    	parent.document.getElementById(div2show).innerHTML=content;
    }
}

function replyComment(currentid) {

	if(document.getElementById('parent_currentid')) {
		document.getElementById('parent_currentid').value=currentid;
	}
	window.location.hash = 'writecomment'
}
