// PlumDesign - Milan Jovanovic 2009.
//27.02.2009. - AJAX ucitavanje slika sa navigatorom kroz album
//29.10.2009. - korekcija funkcije za detect browser MSIE i Explorer string

var PWconst = [];
PWconst[0] = 'site_modules/plum_widget/';//putanja slicica za widget
PWconst[1] = 40;//odstojanje od gornje ivice browsera u odnosu na visinu prozora [%]
PWconst[2] = 50;//odstojanje od leve ivice browsera u odnosu na sirinu prozora [%]
var curPWpicID = 0;//pamtim ID trenutno aktivne slike, bitno za strelice navigatora 
var picIDs = [];//niz ID-jeva fotografija u bazi, niz se generise PHP-om u ajax_widget_get_image.php!
var picIDdim = [];//niz dimenzija fotografija [visina,sirina], niz se generise PHP-om u ajax_widget_get_image.php!
var picFilenames = [];
var picDirPath = "";


/* PlumDesign - osnovne AJAX funkcije */
function PWcreateAjax() {
  var PWajax = false;

  if(window.XMLHttpRequest) {
    PWajax = new XMLHttpRequest();
  } else if(window.ActiveXObject) {
    PWajax = new ActiveXObject("Microsoft.XMLHTTP");
  }

  return PWajax;
}
function PWisAjaxReady(ajax) {
  if (PWajax.readyState == 4) {
    return true;
  } else {
    return false;
  }
}


/* Funkcije za navigator kroz Widget */
function PWprethodna(curID){//prethodna slika u nizu kad se klikne na levu strelicu
	//metoda indexOf ne radi u IE pa postoji prototype kao dogadjaj koji to resava
	var curINDEX = picIDs.find(curID);
	var prevINDEX = parseInt(curINDEX)-1;
	
	if(JelPrva(curID)){//nema prethodne
		return;
	}	
	
	curPWpicID = curID;//setujem trenutno aktivnu sliku
	
	//alert("ID:"+prevINDEX+" Visina:"+picIDdim[prevINDEX][0]+" Sirina:"+picIDdim[prevINDEX][1]);
	PWsendRequest(picIDs[prevINDEX],picIDdim[prevINDEX][0],picIDdim[prevINDEX][1]);
}
function PWsledeca(curID){//naredna slika u nizu kad se klikne na levu strelicu
	//metoda indexOf ne radi u IE pa postoji prototype kao dogadjaj koji to resava
	var curINDEX = picIDs.find(curID);
	var nextINDEX = parseInt(curINDEX)+1;

	if(JelPoslednja(curID)){//nema sledece		
		return;
	}
	
	curPWpicID = curID;//setujem trenutno aktivnu sliku
	
	//alert("ID:"+nextINDEX+" Visina:"+picIDdim[nextINDEX][0]+" Sirina:"+picIDdim[nextINDEX][1]);
	PWsendRequest(picIDs[nextINDEX],picIDdim[nextINDEX][0],picIDdim[nextINDEX][1]);
}

function JelPoslednja(curID){//proveravam da li je slika poslednja u nizu
	var curINDEX = picIDs.find(curID);
	var nextINDEX = parseInt(curINDEX)+1;
	if(nextINDEX == picIDs.length){//nema sledece		
		return true;
	}else{
		return false;	
	}
}
function JelPrva(curID){//proveravam da li je slika prva u nizu
	var curINDEX = picIDs.find(curID);	
	if(curINDEX == 0){//nema prethodne
		return true;
	}else{
		return false;	
	}
}

//ispis rednog broja fotografije
function RedniBroj(){
	if(!document.getElementById('PWpoljeRedniBroj'))
	return;
	
	var curINDEX = picIDs.find(curPWpicID);
	var uNizu = parseInt(curINDEX)+1;
	var komada = picIDs.length;
	
	//primer "6/9" odnosno sesta od devet
	var ispisRB = uNizu + "/" + komada;
	
	var poljeRB = document.getElementById('PWpoljeRedniBroj');
	poljeRB.innerHTML = ispisRB;
	
}

//funkcija koja vraca INDEX niza za zadati element niza
Array.prototype.find = function(searchStr) {  
	var returnArray = false;  
	for (i=0; i<this.length; i++) {    
		if (typeof(searchStr) == 'function') {      
			if (searchStr.test(this[i])) {        
				if (!returnArray) { returnArray = [] }        
				returnArray.push(i);      
				}    
			} else {      
			if (this[i]===searchStr) {        
				if (!returnArray) { returnArray = [] }        
				returnArray.push(i);      
			}    
		}  
	}  
	return returnArray;
}


/* AJAX slanje zahteva */

//funkcija za pozivanje odgovarajucih AJAX stranica
var http = PWcreateAjax();
function PWsendRequest(curPic,visina,sirina){
	
	if((BrowserDetect.browser == "MSIE") && (BrowserDetect.version == 5 || BrowserDetect.version == 6)){
		//alert(BrowserDetect.version);
		sirinaProzora = parseInt(sirina) + 40;
		visinaProzora = parseInt(visina) + 30;
		
		var curINDEX = picIDs.find(curPic);
		var fotkaPath = picDirPath+picFilenames[curINDEX];//generisem putanju
		window.open(fotkaPath,"mywindow","scrollbars=YES,width="+sirinaProzora+",height="+visinaProzora+"");
		return;
	}
	
	curPWpicID = curPic;
	
  //Prikaz ekrana sa pozadinom preko celog	
	myField1 = document.getElementById('widgetBgnd');
	myField2 = document.getElementById('widgetContainer');
	
	myField1.style.top = "0px";
	myField1.style.display = "block";
	myField2.style.display = "block";

	var sirinaKontejnera = myField1.offsetWidth;
	var visinaKontejnera = myField1.offsetHeight;
	
	//pomeram boks za 40/50% levo/odozgo u 
	//odnosu na kontejner minus polovina sirine/visime slike u procentima u odnosu na sirinu/visinu
	izracunavanjeTop = PWconst[1] - (visina/(visinaKontejnera/100))/2;
	izracunavanjeLeft = PWconst[2] - (sirina/(sirinaKontejnera/100))/2;
	
	myField2.style.top = izracunavanjeTop + "%";
	myField2.style.left = izracunavanjeLeft + "%";
	

 if (http) {
  	 http.open('get', 'site_modules/plum_widget/ajax_widget_get_image.php?PWitem='+curPic);
   	 http.onreadystatechange = WidgethandleResponse;
 }
  http.send('');
} 

/* Handle za Widget */
function WidgethandleResponse() {
    if (http.readyState == 4) {
        response = http.responseText;
        document.getElementById('widgetContainer').innerHTML = response;
	  
		//dugmici za navigator za prvu i poslednju sliku u nizu
		if(JelPoslednja(curPWpicID))
		document.getElementById('PWdugmeSledeca').src = "site_modules/plum_widget/images/icon_sledeca_off.gif";

		if(JelPrva(curPWpicID))
		document.getElementById('PWdugmePrethodna').src = "site_modules/plum_widget/images/icon_prethodna_off.gif";	
		
		RedniBroj(curPWpicID);
		
    }else if(http.readyState == 1){
      document.getElementById('widgetContainer').innerHTML = "<div style='text-align:center;padding:4px;border:0px;'><img src="+PWconst[0]+"/images/loading.gif></div>";	  	
	}
}


function detectBrowser(tip,verzija){
	//tip = msie
	//verzija = msie 6.
var browser=navigator.appName;
var b_version=navigator.appVersion;
var version=parseFloat(b_version);
var agt=navigator.userAgent.toLowerCase();

var is_ie = ((agt.indexOf(tip) != -1));
var is_ie6 = (is_ie && (agt.indexOf(verzija)!=-1));
	if(is_ie6){
	//alert(agt);
	return true;
	}else{
	return false;
	}
}

//Default parametri za widget
var widgetImagePath = ""



//OVA FUNKCIJA NE RADI SA AJAKSOM
// zaPrikaz - kompletna putanja slike
function plumWidget(zaPrikaz,sirinaSlike,visinaSlike){
	myField1 = document.getElementById('widgetBgnd');
	myField2 = document.getElementById('widgetContainer');
	
//alert(BrowserDetect.browser+" - "+BrowserDetect.version);
	if((BrowserDetect.browser == "MSIE" || BrowserDetect.browser == "Explorer") && (BrowserDetect.version == 5 || BrowserDetect.version == 6)){
		sirinaProzora = sirinaSlike + 40;
		visinaProzora = visinaSlike + 30;
		window.open(zaPrikaz,"mywindow","scrollbars=YES,width="+sirinaProzora+",height="+visinaProzora+"");
		return;
	}

	if(myField1.style.display == "block"){
		myField1.style.display = "none";
	}else{
		myField1.style.top = "0px";
		myField1.style.display = "block";
	}
	
	if(myField2.style.display == "block"){
		myField2.style.display = "none";
	}else{
		myField2.style.display = "block";
		myField2.innerHTML = "<a href='javascript:;' onClick=\"ShowHideWidgetBox('widgetContainer');\"><img src='"+PWconst[0]+"/images/icon_close.gif' border='0' alt='Zatvori'></a><img src='"+ widgetImagePath + zaPrikaz +"' style='' onClick=\"ShowHideWidgetBox('widgetContainer');\">" ;
	}
	
	
	sirinaKontejnera = myField1.offsetWidth;
	visinaKontejnera = myField1.offsetHeight;
	
	//pomeram boks za 40/50% levo/odozgo u odnosu na kontejner minus polovina sirine/visime slike u procentima u odnosu na sirinu/visinu
	izracunavanjeTop = PWconst[1] - (visinaSlike/(visinaKontejnera/100))/2;
	izracunavanjeLeft = PWconst[2] - (sirinaSlike/(sirinaKontejnera/100))/2;
	
	myField2.style.top = izracunavanjeTop + "%";
	myField2.style.left = izracunavanjeLeft + "%";
	
	
}

function PWpicInfo(zaPrikaz,infoCnt,sirinaSlike,visinaSlike){
	myField1 = document.getElementById('widgetBgnd');
	myField2 = document.getElementById('widgetContainer');
	

	if((BrowserDetect.browser == "MSIE") && (BrowserDetect.version == 5 || BrowserDetect.version == 6)){
		alert(BrowserDetect.version);
		sirinaProzora = sirinaSlike + 40;
		visinaProzora = visinaSlike + 30;
		//window.open(zaPrikaz,"mywindow","scrollbars=YES,width="+sirinaProzora+",height="+visinaProzora+"");
		return;
	}

	if(myField1.style.display == "block"){
		myField1.style.display = "none";
	}else{
		myField1.style.top = "0px";
		myField1.style.display = "block";
	}
	
	if(myField2.style.display == "block"){
		myField2.style.display = "none";
	}else{
		myField2.style.display = "block";
		
		var PWcnt = "<a href='javascript:;' onClick=\"ShowHideWidgetBox('widgetContainer');\">"+
					"<img src='"+PWconst[0]+"/images/icon_close.gif' border='0' alt='Zatvori'></a>"+
					"<img src='"+ widgetImagePath + zaPrikaz +"' style='' onClick=\"ShowHideWidgetBox('widgetContainer');\">"+
					"<div class='PWinfoStyle'>"+infoCnt+"</div>";
		
		myField2.innerHTML = PWcnt;
	}
	
	
	sirinaKontejnera = myField1.offsetWidth;
	visinaKontejnera = myField1.offsetHeight;
	
	//pomeram boks za 40/50% levo/odozgo u odnosu na kontejner minus polovina sirine/visime slike u procentima u odnosu na sirinu/visinu
	izracunavanjeTop = PWconst[1] - (visinaSlike/(visinaKontejnera/100))/2;
	izracunavanjeLeft = PWconst[2] - (sirinaSlike/(sirinaKontejnera/100))/2;
	
	myField2.style.top = izracunavanjeTop + "%";
	myField2.style.left = izracunavanjeLeft + "%";
	
	
}

//Prikazuje i skriva zadato polje
function ShowHideWidgetBox(){
	myField1 = document.getElementById('widgetBgnd');
	if(myField1.style.display == "block")
		myField1.style.display = "none";
	else
		myField1.style.display = "block";
	
	myField2 = document.getElementById('widgetContainer');
	if(myField2.style.display == "block")
		myField2.style.display = "none";
	else
		myField2.style.display = "block";

}
//</ FUNKCIJE ZA PLUMwidget >


var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
