/* Main JS functions */

/********************************************************************************************/

/* AJAX funkcije */
function Ajax() {
  this.req = null;
  this.url = null;
  this.status = null;
  this.statusText = '';
  this.method = 'GET';
  this.async = true;
  this.dataPayload = null;
  this.readyState = null;
  this.responseText = null;
  this.responseXML = null;
  this.handleResp = null;
  this.responseFormat = 'text', // 'text', 'xml', 'object'
  this.mimeType = null;
  this.headers = [];

  
  this.init = function() {
    var i = 0;
    var reqTry = [ 
      function() { return new XMLHttpRequest(); },
      function() { return new ActiveXObject('Msxml2.XMLHTTP') },
      function() { return new ActiveXObject('Microsoft.XMLHTTP' )} ];
      
    while (!this.req && (i < reqTry.length)) {
      try { 
        this.req = reqTry[i++]();
      } 
      catch(e) {}
    }
    return true;
  };
  this.doGet = function(url, hand, format) {
    this.url = url;
    this.handleResp = hand;
    this.responseFormat = format || 'text';
    this.doReq();
  };
  this.doPost = function(url, dataPayload, hand, format) {
    this.url = url;
    this.dataPayload = dataPayload;
    this.handleResp = hand;
    this.responseFormat = format || 'text';
    this.method = 'POST';
    this.doReq();
  };
  this.doReq = function() {
    var self = null;
    var req = null;
    var headArr = [];
    
    if (!this.init()) {
      alert('Could not create XMLHttpRequest object.');
      return;
    }
    req = this.req;
    req.open(this.method, this.url, this.async);
    if (this.method == "POST") {
      this.req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    }
    if (this.method == 'POST') {
      req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    }
    self = this;
    req.onreadystatechange = function() {
      var resp = null;
      self.readyState = req.readyState;
      if (req.readyState == 4) {
        
        self.status = req.status;
        self.statusText = req.statusText;
        self.responseText = req.responseText;
        self.responseXML = req.responseXML;
        
        switch(self.responseFormat) {
          case 'text':
            resp = self.responseText;
            break;
          case 'xml':
            resp = self.responseXML;
            break;
          case 'object':
            resp = req;
            break;
        }
        
        if (self.status > 199 && self.status < 300) {
          if (!self.handleResp) {
            alert('No response handler defined ' +
              'for this XMLHttpRequest object.');
            return;
          }
          else {
            self.handleResp(resp);
          }
        }
        
        else {
          self.handleErr(resp);
        }
      }
    }
    req.send(this.dataPayload);
  };
  this.abort = function() {
    if (this.req) {
      this.req.onreadystatechange = function() { };
      this.req.abort();
      this.req = null;
    }
  };
  this.handleErr = function() {
    var errorWin;
    // Create new window and display error
    try {
      errorWin = window.open('', 'errorWin');
      errorWin.document.body.innerHTML = this.responseText;
    }
    // If pop-up gets blocked, inform user
    catch(e) {
      alert('An error occurred, but the error message cannot be' +
      ' displayed because of your browser\'s pop-up blocker.\n' +
      'Please allow pop-ups from this Web site.');
    }
  };
  this.setMimeType = function(mimeType) {
    this.mimeType = mimeType;
  };
  this.setHandlerResp = function(funcRef) {
    this.handleResp = funcRef;
  };
  this.setHandlerErr = function(funcRef) {
    this.handleErr = funcRef; 
  };
  this.setHandlerBoth = function(funcRef) {
    this.handleResp = funcRef;
    this.handleErr = funcRef;
  };
  this.setRequestHeader = function(headerName, headerValue) {
    this.headers.push(headerName + ': ' + headerValue);
  };
  
}

/********************************************************************************************/


/*
*********************************************************************************************
			PRAVA JEZIKA
*********************************************************************************************
*/
function checkLang(id,url){
	var strDomain=url;
	var hand = function(str){window.document.getElementById('AjaxMsgBox').innerHTML=str;}
	
	var objVal = document.getElementById(id).value;
	
	if (document.getElementById(id).checked==false){
		//document.getElementById(id).checked = true;
		var ajax = new Ajax();
		ajax.doGet(strDomain+'/admin/inc/do.php?action=lang&obj='+objVal+'&what=0',hand,'text');
	}
	else {
		//document.getElementById(id).checked = false;
		var ajax = new Ajax();
		ajax.doGet(strDomain+'/admin/inc/do.php?action=lang&obj='+objVal+'&what=1',hand,'text');
	}

/*
	
	//ovdje sad izbrišem komentar koji je zapisan
	document.getElementById('komentari').value="";
	var strDomain='';


	var ajax = new Ajax();
	ajax.doGet(strDomain+'/include/php/ajax.php?action=komentiranje_igrice&vrijednost='+komplet,hand,'text');*/
}
/*
**********************************************************************************************
*/

/*
*********************************************************************************************
			UBACIVANJE SASTOJAK NA POPIS
*********************************************************************************************
*/
function ocjeniIgricu(){
	komentar = document.getElementById('komentari').value;
	igrica = document.getElementById('igrica').value;

	var komplet = igrica+"||"+komentar;

	var hand = function(str){window.document.getElementById('boxKomentara').innerHTML=str;}
	//ovdje sad izbrišem komentar koji je zapisan
	document.getElementById('komentari').value="";
	var strDomain='';


	var ajax = new Ajax();
	ajax.doGet(strDomain+'/include/php/ajax.php?action=komentiranje_igrice&vrijednost='+komplet,hand,'text');
}
/*
**********************************************************************************************
*/


/*
*********************************************************************************************
			PRIKAZIVANJE GREŠKE
*********************************************************************************************
*/
function prikazivanjeGreske(){
	var greska = "<div id='error_moja_lista'>Morate se registrirati kako bi mogli igrice dodavati na listu! <br/><br/> Sa desne strane imate registracijski link, kliknite na njega i registrirajte se!</div>";
	var reakcija = document.getElementById('ispisGreske').innerHTML=greska;
}
/*
**********************************************************************************************
*/


/*
---------------------------------------------------
	Cookie
---------------------------------------------------
*/
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) c.substring(nameEQ.length,c.length);
	}
	return null;
	
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
/*  kraj kolačića
----------------------------------------------------
*/


/* Ostalo */

//24bit transparencija
function ShowTab(PanelLogin, PanelPassword){
	document.getElementById(PanelLogin).style.display="block";
	document.getElementById(PanelPassword).style.display="none";
}
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

function fixPNG(myImage) 
{
    if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
    {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
	   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
	   var imgTitle = (myImage.title) ? 
		             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
	   var imgStyle = "display:inline-block;" + myImage.style.cssText
	   var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width 
                  + "px; height:" + myImage.height 
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
	   myImage.outerHTML = strNewHTML	  
    }
}

//loginbox
function autoHideMsg(){
	obj = document.getElementById('MsgBoxId');
	visible = (obj.style.display!="none");
	if (visible){
		obj.style.display="none";
	}
}
function doForTime(what, when){
	window.setTimeout(what, when);
}

//promena tabova
//call the functions
//addClass(document.getElementById("test"), "test");
//removeClass(document.getElementById("test"), "test")
//if(hasClass(document.getElementById("test"), "test")){//do something};

var testObj;

function init() {
	document.getElementById('tryIt').onclick = initFade;
}

function initFade() {
	var radios = document.forms['opacityForm'].testEl;
	for (var i=0;i<radios.length;i++)
		if (radios[i].checked)
		{
			testObj = document.getElementById(radios[i].value);
			break;
		}
	for (var i=0;i<11;i++)
		setTimeout('setOpacity('+i+')',100*i);
	return false;
}

function setOpacity(ele, value){
	var objDiv = document.getElementById(ele);
	
	objDiv.style.opacity = value/10;
	objDiv.style.filter = 'alpha(opacity=' + value*10 + ')';
}

function showPanel(panel_id){
  var allTabs=new Array("finder_button","mails_button","chats_button","social_button","video_button");
  var allDivs=new Array("finder","mails","chats","social","video");
  
  var objPanel = document.getElementById(panel_id);
  var objLink = document.getElementById(panel_id+"_button");
  
  visible = (objPanel.style.display!="none");	
	if (visible){
		for (i=0;i<allTabs.length;i++){
			document.getElementById(allTabs[i]).className.replace('active','normal');
		}
		objPanel.style.display="block";	
		objPanel.initFade;
		objLink.className = 'normal';
	}
	else {
		for (i=0;i<allTabs.length;i++){
			document.getElementById(allTabs[i]).className = 'normal';
		}
		for (i=0;i<allDivs.length;i++){
			document.getElementById(allDivs[i]).style.display="none";
		}
		objPanel.style.display="block";	
		for (var i=0;i<11;i++){
		//	setTimeout('setOpacity('+objPanel+','+i+')',100*i);
		}
		objLink.className = 'active';
	}
};


if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Opera/x.x or Opera x.x (ignoring remaining decimal places);
 var oprversion=new Number(RegExp.$1) // capture x.x portion and store as a number
 if (oprversion<=20)
  document.write('<link rel="stylesheet" type="text/css" href="css/opera_fix.css" />')
}
