/*
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.
--------------------------------------------------------- */

  /*************************************************************************
   *      
   *
   *  
  /************************************************************************/      
  function makeRequest(url) 
  {
  
  
  var http_request = false;
       
  if (window.XMLHttpRequest) 
    { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) 
      {
      http_request.overrideMimeType('text/xml;');
      // Przeczytaj o tym wierszu poniżej
      }
    } 
    else if (window.ActiveXObject) 
      { // IE
      try 
        {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) 
          {
          try 
            {
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) 
              {
              }
          }
      }
          
  if (!http_request) 
    {
    alert('Poddaję się :( Nie mogę stworzyć instancji obiektu XMLHTTP');
    return false;
    }
          
  var wynik;
  
  
   
  http_request.onreadystatechange = function() { wynik=LockCallback(http_request);};
       
  
  
  http_request.open('GET', url, true); 
  http_request.send(null);
                
  } //end function

  function LockCallback(http_request)
  {
	  if(http_request.readyState == 4)
	    {     
		 alert('ok');
	    }
	  
	  
  }


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 handleResponseFirst(vote,id_num,ip_num,units)
	{
	var theUL = document.getElementById('unit_ul'+id_num); // the UL

theUL.innerHTML = '<div class="loading"></div>';
	
    xmlhttp.open('get', 'rpc.php?j='+vote+'&q='+id_num+'&t='+ip_num+'&c='+units);
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.send(null);	
	   /*
	if(xmlhttp.readyState == 4){
		   
		if (xmlhttp.status == 200){
       	
    
        }
		}
		*/
	}

function sndReq(vote,id_num,ip_num,units) {
	var theUL = document.getElementById('unit_ul'+id_num); // the UL

	var URL = "rpc2.php?userId="+ip_num+"&talentId="+id_num;
	//var URL = "http://localhost/talent/php/lock.php";
	
	//makeRequest(URL);
	
//	xmlhttp.open('get', URL);
//	xmlhttp.onreadystatechange = handleResponse;
	//xmlhttp.onreadystatechange = handleResponseFirst;
//	xmlhttp.onreadystatechange = function() { wynik=handleResponseFirst(vote,id_num,ip_num,units);};
	  
//	xmlhttp.send(null);	
	
	// switch UL with a loading div
	theUL.innerHTML = '<div class="loading"></div>';
	
    xmlhttp.open('get', '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 ) {
    // 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);
        viewer.innerHTML = text;
    }  else if(IE) {
     	//alert(div2show);
       // alert(text);
        //document.all[div2show].innerHTML = text;
       	var viewer = document.getElementById(div2show);
        viewer.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'];
			
			//for testing	alert('sndReq('+theVote+','+theratingID+','+theuserIP+','+theunits+')'); return false;
			//zamiast IP przekazywane jest ID uzytkownika
			
			sndReq(theVote,theratingID,theuserIP,theunits); return false;		
			
			
			}
		}
		
	};
Behaviour.register(ratingAction);

