/*
Page:           rating.js
Created:        Aug 2006
Last Mod:       Mar 11 2007
Handles actions and requests for rating bars.	
--------------------------------------------------------- 
ryan masuga, masugadesign.com
ryan@masugadesign.com 
Licensed under a Creative Commons Attribution 3.0 License.
http://creativecommons.org/licenses/by/3.0/
See readme.txt for full credit details.
--------------------------------------------------------- */

var xmlhttp
	/*@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);
}

function sndReqYN(id_num,vote,dstdiv) {
    if (document.getElementById(dstdiv)) {
//        document.getElementById(dstdiv).innerHTML = '<div class="loading"><img src="/images/loading.gif"/></div>';
    }
    xmlhttp.open('get', '/vote/'+id_num+'/'+vote);
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.send(null);	
}

function sndCommentReqYN(video_id,comment_id,vote,dstdiv) {
    if (document.getElementById(dstdiv)) {
//        document.getElementById(dstdiv).innerHTML = '<div class="loading"><img src="/images/loading.gif"/></div>';
    }
    xmlhttp.open('get', '/votecomment/'+video_id+'/'+comment_id+'/'+vote);
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.send(null);	
}

function sndFlagSpamReq(video_id,comment_id,dstdiv) {
    if (document.getElementById(dstdiv)) {
//        document.getElementById(dstdiv).innerHTML = '<div class="loading"><img src="/images/loading.gif"/></div>';
    }
    xmlhttp.open('get', '/flagspam/'+video_id+'/'+comment_id+'/');
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.send(null);	
}

function handleResponse() {
  if(xmlhttp.readyState == 4){
     if (xmlhttp.status == 200){
       	
        var response = xmlhttp.responseText;
        var update = new Array();

        if(response.indexOf('|') != -1) {
            update = response.split('|');
            changeText(update[0], update[1]);
        }
     }
  }
}

function changeText( div2show, text ) {

    // Detect Browser
    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) {
        var viewer = document.getElementById(div2show);
        if (viewer) {
            viewer.innerHTML = text;
        }
    }  else if(IE) {
        if (document.all[div2show]) {
            document.all[div2show].innerHTML = text;
        }
    }
}

function AlreadyVoted() {
    alert('You have already voted on this video');
    return false;
}
function AlreadyVotedComment() {
    alert('You have already voted on this comment');
    return false;
}
function AlreadyFlagged() {
    alert('You have already flagged this comment');
    return false;
}

/* =============================================================== */

function yesnorate(element){
                        var parameterString = element.href.replace(/.*\/votes?\//, '');
                        var parameterTokens = parameterString.split("/");
                        sndReqYN(parameterTokens[0],parameterTokens[1],'voteinfo');

                        if (document.getElementById('rateup')) {
                          document.getElementById('rateup').onclick=AlreadyVoted;
                          document.getElementById('rateup').href='#';
                        } else {
			  element.onclick=AlreadyVoted;
			}
			if (document.getElementById('ratedown')) {
                          document.getElementById('ratedown').onclick=AlreadyVoted;
                          document.getElementById('ratedown').href='#';
			} else {
			  element.onclick=AlreadyVoted;
			}

                        return false;
}

function yesnoratemp(element){
                        var parameterString = element.href.replace(/.*\/votes?\//, '');
                        var parameterTokens = parameterString.split("/");
                        if (document.getElementById(element.id+'_info')) {
                            currate=parseInt(document.getElementById(element.id+'_info').innerHTML);
                        }
                        sndReqYN(parameterTokens[0],parameterTokens[1], element.id+'_info');
                        if (document.getElementById('rateup_'+parameterTokens[0])) {
                          document.getElementById('rateup_'+parameterTokens[0]).onclick=AlreadyVoted;
                          document.getElementById('rateup_'+parameterTokens[0]).href='#';
//                          document.getElementById('rateup_'+parameterTokens[0]).style.opacity=0.4;
//                          document.getElementById('rateup_'+parameterTokens[0]).style.filter='alpha(opacity=40)';
                        } else {
			  element.onclick=AlreadyVoted;
			}
                        if (document.getElementById('thumbsup_'+parameterTokens[0])) {
                          document.getElementById('thumbsup_'+parameterTokens[0]).style.opacity=0.4;
                          document.getElementById('thumbsup_'+parameterTokens[0]).style.filter='alpha(opacity=40)';
                        }
			if (document.getElementById('ratedown_'+parameterTokens[0])) {
                          document.getElementById('ratedown_'+parameterTokens[0]).onclick=AlreadyVoted;
                          document.getElementById('ratedown_'+parameterTokens[0]).href='#';
//                          document.getElementById('ratedown_'+parameterTokens[0]).style.opacity=0.4;
//                          document.getElementById('ratedown_'+parameterTokens[0]).style.filter='alpha(opacity=40)';
			} else {
			  element.onclick=AlreadyVoted;
			}
                        if (document.getElementById('thumbsdown_'+parameterTokens[0])) {
                          document.getElementById('thumbsdown_'+parameterTokens[0]).style.opacity=0.4;
                          document.getElementById('thumbsdown_'+parameterTokens[0]).style.filter='alpha(opacity=40)';
                        }
                        if (document.getElementById(element.id+'_info')) {
                            document.getElementById(element.id+'_info').innerHTML=currate+1;
                        }
			//element.focus
                        
                        return false;
}

function yesnoratcomment(element){
                        var parameterString = element.href.replace(/.*\/votecomments?\//, '');
                        var parameterTokens = parameterString.split("/");
                        if (document.getElementById(element.id+'_info')) {
                            currate=parseInt(document.getElementById(element.id+'_info').innerHTML);
                        }
                        sndCommentReqYN(parameterTokens[0],parameterTokens[1],parameterTokens[2], element.id+'_info');
                        if (document.getElementById('comment_yea_'+parameterTokens[1])) {
                          document.getElementById('comment_yea_'+parameterTokens[1]).onclick=AlreadyVotedComment;
                          document.getElementById('comment_yea_'+parameterTokens[1]).href='#';
                        } else {
			  element.onclick=AlreadyVoted;
			}
                        if (document.getElementById('comment_yea_button_'+parameterTokens[1])) {
                          document.getElementById('comment_yea_button_'+parameterTokens[1]).style.opacity=0.4;
                          document.getElementById('comment_yea_button_'+parameterTokens[1]).style.filter='alpha(opacity=40)';
                        }
			if (document.getElementById('comment_nay_'+parameterTokens[1])) {
                          document.getElementById('comment_nay_'+parameterTokens[1]).onclick=AlreadyVotedComment;
                          document.getElementById('comment_nay_'+parameterTokens[1]).href='#';
			} else {
			  element.onclick=AlreadyVoted;
			}
                        if (document.getElementById('comment_nay_button_'+parameterTokens[1])) {
                          document.getElementById('comment_nay_button_'+parameterTokens[1]).style.opacity=0.4;
                          document.getElementById('comment_nay_button_'+parameterTokens[1]).style.filter='alpha(opacity=40)';
                        }
                        if (document.getElementById(element.id+'_info')) {
                            document.getElementById(element.id+'_info').innerHTML=currate+1;
                        }
			//element.focus
                        
                        return false;
}

function flagspam(element){
                        var parameterString = element.href.replace(/.*\/flagspam\//, '');
                        var parameterTokens = parameterString.split("/");
                        sndFlagSpamReq(parameterTokens[0],parameterTokens[1], element.id+'_info');
                        if (document.getElementById('flag_spam_'+parameterTokens[1])) {
                          document.getElementById('flag_spam_'+parameterTokens[1]).onclick=AlreadyFlagged;
                          document.getElementById('flag_spam_'+parameterTokens[1]).href='#';
                          document.getElementById('flag_spam_button_'+parameterTokens[1]).style.opacity=0.1;
                          document.getElementById('flag_spam_button_'+parameterTokens[1]).style.filter='alpha(opacity=10)';
                        } else {
			  element.onclick=AlreadyFlaggged;
                          element.href='#';
                          element.style.opacity=0.1;
                          element.style.filter='alpha(opacity=10)';
			}
                        if (document.getElementById('flag_spam_button_'+parameterTokens[1])) {
                          document.getElementById('flag_spam_button_'+parameterTokens[1]).style.opacity=0.1;
                          document.getElementById('flag_spam_button_'+parameterTokens[1]).style.filter='alpha(opacity=10)';
                        }
                        return false;
}


