var domain;function trim(b){var a=0,c=b.length-1;while(a<b.length&&b[a]==" ")a++;while(c>a&&b[c]==" ")c-=1;return b.substring(a,c+1)}function openFileOption(subdomain){domain=subdomain;document.getElementById("input-video").click();return}function isBrowserSupported(){return!(window.File&&window.FileReader&&window.Blob)?false:true}function handleFiles(d){var b=65536;if(!isBrowserSupported()){alert("Ops! Desculpe mas o seu browser não suporta essa nova funcionalidade!\nAtualize para uma versão mais nova com suporte ao HTML5");return}if(d==null||d.length<=0){alert("Por favor, selecione um arquivo!");return}if(d.length>1){alert("Por favor, selecione apenas um arquivo.");return}var h=navigator.userAgent.toLowerCase().indexOf("chrome")>-1,e=Array(8);pngFile=d[0];if(pngFile.fileSize) fs=pngFile.fileSize;else fs=pngFile.size;for(var a=fs,f=0;f<8;f++){e[f]=a&255;a=a>>8}a=fs;if(pngFile.slice)var c=pngFile.slice(0,b);else if(pngFile.mozSlice)var c=pngFile.mozSlice(0,b);else if(pngFile.webkitSlice)var c=pngFile.webkitSlice(0,b);var g=new FileReader;g.onloadend=function(h){if(h.target.readyState==FileReader.DONE){for(var f=h.target.result,d=0;d<f.length;d++)e[(d+8)%8]+=f.charCodeAt(d);if(pngFile.slice)c=pngFile.slice(a-b,b);else if(pngFile.mozSlice)c=pngFile.mozSlice(a-b,a);else if(pngFile.webkitSlice)c=pngFile.webkitSlice(a-b,a);var g=new FileReader;g.onloadend=function(a){if(a.target.readyState==FileReader.DONE){f=a.target.result;for(d=0;d<f.length;d++)e[(d+8)%8]+=f.charCodeAt(d);document.location="http://"+domain+".legendasbrasil.com.br/hash-"+binl2hex(e)+"-auto"}};g.readAsBinaryString(c)}};g.readAsBinaryString(c)}function binl2hex(a){var b=255;a[1]+=a[0]>>8;a[0]=a[0]&b;a[2]+=a[1]>>8;a[1]=a[1]&b;a[3]+=a[2]>>8;a[2]=a[2]&b;a[4]+=a[3]>>8;a[3]=a[3]&b;a[5]+=a[4]>>8;a[4]=a[4]&b;a[6]+=a[5]>>8;a[5]=a[5]&b;a[7]+=a[6]>>8;a[6]=a[6]&b;a[7]=a[7]&b;for(var d="0123456789abcdef",e="",c=7;c>-1;c--)e+=d.charAt(a[c]>>4&15)+d.charAt(a[c]&15);return e}function openPopup(a){a.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/ xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">');a.document.write('<head><title>Popup</title></head><body style="overflow:hidden" bgcolor="#fff">');a.document.write("</body></html>")}function AJAX(g,b,f,e,d,c){var a=this;a.url=g;a.metodo=b?b:"GET";a.params=b=="GET"?null:f;a.processaresultado=e;a.Header=[];a.modo=d?d:"T";a.executeJS=c?c:false;if(a.modo!="T"&&a.modo!="X")a.modo="T";a.complete=null}AJAX.prototype={addHeader:function(a,b){this.Header[a]=b},delHeader:function(a){delete this.Header[a]},setHeader:function(){var a=this;if(a.httprequest===null)return;for(h in a.Header)a.httprequest.setRequestHeader(h,a.Header[h])},conectar:function(){var a=this;if(a.url===undefined||a.url==="")return;a.httprequest=null;if(window.XMLHttpRequest)a.httprequest=new XMLHttpRequest;else if(window.ActiveXObject)try{a.httprequest=new ActiveXObject("Msxml2.XMLHTTP")}catch(c){try{a.httprequest=new ActiveXObject("Microsoft.XMLHTTP")}catch(c){}}if(!a.httprequest){alert("Cannot create XMLHTTP instance");return false}if(a.httprequest!==null&&a.httprequest!==undefined){if(a.metodo===undefined||a.metodo==="")a.metodo="GET";var b=a;a.httprequest.onreadystatechange=function(){b.processaretorno.call(b)};a.httprequest.open(a.metodo,a.url,true);a.httprequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");a.httprequest.send(a.params)}},processaretorno:function(){var a=this;if(a.httprequest.readyState==4)if(a.httprequest.status==200){var b=a.modo=="T"?a.httprequest.responseText:a.httprequest.responseXML;if(a.processaresultado!==null){a.processaresultado(b);a.executeJS&&launchJavascript(b)}else eval.write(b);a.complete!==null&&a.complete()}else a.processaerro()},processaerro:function(){},abort:function(){a.httprequest.abort()}};var time=null,TEMPO_PADRAO=200,ultima_busca="",cont=0,ssIndex=0,cod_movie=0,a=new AJAX;function processaBusca(){var a=new Date;if(time==null)time=a;var b=a-time;cont=0;monitoraTempo();time=a}function monitoraTempo(){var a=document.getElementById("search-keywords").value;if(time!=null&&a!=ultima_busca){var b=new Date,c=b-time;if(c>=TEMPO_PADRAO){selecionarLegendas(a);time=b;cont=99;ultima_busca=a}}cont++;if(cont==1)setTimeout("monitoraTempo()",TEMPO_PADRAO);else cont=0}function selecionarLegendas(b){a.url="../index.php";a.modo="X";a.metodo="POST";a.params="action=dynamic_search&query="+b;a.processaresultado=function(e){closeSuggestions();var g=document.getElementById("search-suggestions"),d=e.getElementsByTagName("group");if(e.hasChildNodes()&&d.length>0){for(var b=0;b<d.length;b++){var f=d[b],c=f.childNodes[0].firstChild.nodeValue,h=f.childNodes[1].firstChild.nodeValue,i=document.createTextNode(c),a=document.createElement("div");a.appendChild(i);if(c.length>38)a.title=c;a.onclick=function(){setKeyword(this)};a.onmouseover=function(){setOver(this)};a.id=b+1;a.name=h;g.appendChild(a)}g.style.display="block"}};a.conectar();return false}function closeSuggestions(){var a=document.getElementById("search-suggestions");if(a){a.innerHTML="";a.style.display="none";ssIndex=0}}function setOver(a){clearSsDivs();a.style.backgroundColor="#bbb";ssIndex=a.id;return}function setKeyword(a){document.getElementById("cod_movie").value=a.name;document.getElementById("search-keywords").value=a.innerHTML.replace("&amp;","&");closeSuggestions();return}function clearSsDivs(){for(var c=document.getElementById("search-suggestions"),b=c.getElementsByTagName("div"),a=0;a<b.length;a++)b[a].style.backgroundColor="#fff";return}function searchKeywordsHandler(d){var b="search-suggestions";switch(d.keyCode){case 13:var c=document.getElementById(b),a=c.getElementsByTagName("div");ssIndex>0&&setKeyword(a[ssIndex-1]);search();closeSuggestions();break;case 38:clearSsDivs();var c=document.getElementById(b),a=c.getElementsByTagName("div");ssIndex--;if(ssIndex<1)ssIndex=1;a[ssIndex-1].style.backgroundColor="#bbb";break;case 40:clearSsDivs();var c=document.getElementById(b),a=c.getElementsByTagName("div");ssIndex++;if(ssIndex>a.length)ssIndex=a.length;a[ssIndex-1].style.backgroundColor="#bbb";break;default:document.getElementById("cod_movie").value="0"}return}function replaceAll(string,token,newtoken){while(string.indexOf(token)!=-1){string=string.replace(token,newtoken)}return string}function urlencode(a){a=escape(a);var histogram={},tmp_arr=[];var ret=(a+'').toString();var replacer=function(search,replace,a){var tmp_arr=[];tmp_arr=a.split(search);return tmp_arr.join(replace)};histogram['+']='%2B';histogram['-']='%2D';histogram['%20']='+';histogram['%23']='%2523';histogram['%26']='%2526';histogram['%2B']='%252B';histogram['*']='%2A';histogram['/']='%252F';histogram['@']='%40';histogram['%E1']='á';histogram['%C1']='Á';histogram['%E3']='ã';histogram['%C3']='Ã';histogram['%E2']='â';histogram['%C2']='Â';histogram['%E0']='à';histogram['%C0']='À';histogram['%E9']='é';histogram['%C9']='É';histogram['%EA']='ê';histogram['%CA']='Ê';histogram['%ED']='í';histogram['%CD']='Í';histogram['%F3']='ó';histogram['%D3']='Ó';histogram['%F5']='õ';histogram['%D5']='Õ';histogram['%F4']='ô';histogram['%D4']='Ô';histogram['%FA']='ú';histogram['%DA']='Ú';histogram['%FC']='ü';histogram['%DC']='Ü';histogram['%E7']='ç';histogram['%C7']='Ç';histogram['%A8']='%C2%A8';for(search in histogram){replace=histogram[search];ret=replacer(search,replace,ret)}return ret}function search(){var a=document.getElementById("search-keywords").value;if(a=="")return;a=trim(a);if(a=="(=AutoSearch)")return;var c=document.getElementById("cod_movie").value;var d="all";document.location.href="search-subtitles-"+urlencode(a)+"-"+c+"-"+d+"-all-1.htm"}function launchJavascript(responseText){var ScriptFragment="(?:<script.*?>)((\n|.)*?)(?:<\/script>)",match=new RegExp(ScriptFragment,"img"),scripts=responseText.match(match);if(scripts){for(var js="",s=0;s<scripts.length;s++){var match=new RegExp(ScriptFragment,"im");js+=scripts[s].match(match)[1]}eval(js)}}
var Behaviour = {
	list : new Array,
	
	register : function(sheet){
		Behaviour.list.push(sheet);
	},
	
	start : function(){
		Behaviour.addLoadEvent(function(){
			Behaviour.apply();
		});
	},
	
	apply : function(){
		for (h=0;sheet=Behaviour.list[h];h++){
			for (selector in sheet){
				list = document.getElementsBySelector(selector);
				
				if (!list){
					continue;
				}

				for (i=0;element=list[i];i++){
					sheet[selector](element);
				}
			}
		}
	},
	
	addLoadEvent : function(func){
		var oldonload = window.onload;
		
		if (typeof window.onload != 'function') {
			window.onload = func;
		} else {
			window.onload = function() {
				oldonload();
				func();
			}
		}
	}
}

Behaviour.start();

function getAllChildren(e) {
  // Returns all children of element. Workaround required for IE5/Windows. Ugh.
  return e.all ? e.all : e.getElementsByTagName('*');
}

document.getElementsBySelector = function(selector) {
  // Attempt to fail gracefully in lesser browsers
  if (!document.getElementsByTagName) {
    return new Array();
  }
  // Split selector in to tokens
  var tokens = selector.split(' ');
  var currentContext = new Array(document);
  for (var i = 0; i < tokens.length; i++) {
    token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');;
    if (token.indexOf('#') > -1) {
      // Token is an ID selector
      var bits = token.split('#');
      var tagName = bits[0];
      var id = bits[1];
      var element = document.getElementById(id);
      if (tagName && element.nodeName.toLowerCase() != tagName) {
        // tag with that ID not found, return false
        return new Array();
      }
      // Set currentContext to contain just this element
      currentContext = new Array(element);
      continue; // Skip to next token
    }
    if (token.indexOf('.') > -1) {
      // Token contains a class selector
      var bits = token.split('.');
      var tagName = bits[0];
      var className = bits[1];
      if (!tagName) {
        tagName = '*';
      }
      // Get elements matching tag, filter them for class selector
      var found = new Array;
      var foundCount = 0;
      for (var h = 0; h < currentContext.length; h++) {
        var elements;
        if (tagName == '*') {
            elements = getAllChildren(currentContext[h]);
        } else {
            elements = currentContext[h].getElementsByTagName(tagName);
        }
        for (var j = 0; j < elements.length; j++) {
          found[foundCount++] = elements[j];
        }
      }
      currentContext = new Array;
      var currentContextIndex = 0;
      for (var k = 0; k < found.length; k++) {
        if (found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b'))) {
          currentContext[currentContextIndex++] = found[k];
        }
      }
      continue; // Skip to next token
    }
    // Code to deal with attribute selectors
    if (token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)) {
      var tagName = RegExp.$1;
      var attrName = RegExp.$2;
      var attrOperator = RegExp.$3;
      var attrValue = RegExp.$4;
      if (!tagName) {
        tagName = '*';
      }
      // Grab all of the tagName elements within current context
      var found = new Array;
      var foundCount = 0;
      for (var h = 0; h < currentContext.length; h++) {
        var elements;
        if (tagName == '*') {
            elements = getAllChildren(currentContext[h]);
        } else {
            elements = currentContext[h].getElementsByTagName(tagName);
        }
        for (var j = 0; j < elements.length; j++) {
          found[foundCount++] = elements[j];
        }
      }
      currentContext = new Array;
      var currentContextIndex = 0;
      var checkFunction; // This function will be used to filter the elements
      switch (attrOperator) {
        case '=': // Equality
          checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); };
          break;
        case '~': // Match one of space seperated words 
          checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); };
          break;
        case '|': // Match start with value followed by optional hyphen
          checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); };
          break;
        case '^': // Match starts with value
          checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); };
          break;
        case '$': // Match ends with value - fails with "Warning" in Opera 7
          checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); };
          break;
        case '*': // Match ends with value
          checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); };
          break;
        default :
          // Just test for existence of attribute
          checkFunction = function(e) { return e.getAttribute(attrName); };
      }
      currentContext = new Array;
      var currentContextIndex = 0;
      for (var k = 0; k < found.length; k++) {
        if (checkFunction(found[k])) {
          currentContext[currentContextIndex++] = found[k];
        }
      }
      // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue);
      continue; // Skip to next token
    }
    
    if (!currentContext[0]){
    	return;
    }
    
    // If we get here, token is JUST an element (not a class or ID selector)
    tagName = token;
    var found = new Array;
    var foundCount = 0;
    for (var h = 0; h < currentContext.length; h++) {
      var elements = currentContext[h].getElementsByTagName(tagName);
      for (var j = 0; j < elements.length; j++) {
        found[foundCount++] = elements[j];
      }
    }
    currentContext = found;
  }
  return currentContext;
}

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 sndReq(vote,id_num,ip_num,units) {
	var theUL = document.getElementById('unit_ul'+id_num);
	theUL.innerHTML = '<div class="loading"></div>';
    xmlhttp.open('get', 'http://www.legendasbrasil.com.br/star-rater/rpc.php?j='+vote+'&q='+id_num+'&t='+ip_num+'&c='+units);
    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 ) {

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

    if (DOM) {
        var viewer = document.getElementById(div2show);
        viewer.innerHTML = text;
    }  else if(IE) {
        document.all[div2show].innerHTML = text;
    }
}
var ratingAction = {
		'a.rater' : function(element){
			element.onclick = function(){

			var parameterString = this.href.replace(/.*\?(.*)/, "$1"); // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5');
			var parameterTokens = parameterString.split("&"); // onclick="sndReq('j=1,q=2,t=127.0.0.1,c=5');
			var parameterList = new Array();

			for (j = 0; j < parameterTokens.length; j++) {
				var parameterName = parameterTokens[j].replace(/(.*)=.*/, "$1"); // j
				var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "$1"); // 1
				parameterList[parameterName] = parameterValue;
			}
			var theratingID = parameterList['q'];
			var theVote = parameterList['j'];
			var theuserIP = parameterList['t'];
			var theunits = parameterList['c'];
			
			//alert('sndReq('+theVote+','+theratingID+','+theuserIP+','+theunits+')'); return false;
			sndReq(theVote,theratingID,theuserIP,theunits); return false;		
			}
		}
		
	};
Behaviour.register(ratingAction);


