jQuery(document).ready(
    function() 
    {
    	if (jQuery('body#slobodne-lokacije').length) {
    		initialize();
    	}
    	jQuery('.rss a').click(
    			function() 
    			{
    				window.open(jQuery(this).attr('href'));
    				return false;
    			});
    	
        jQuery('.pic-nav-right a').hover(
	            function()
	            {	            	
	            	jQuery(this).parent().parent().find('.pics-screen').addClass('current-scroll');
	            	rightGoer = setInterval('goRight()', 10);
	            },
	            function()
	            {
	            	jQuery(this).parent().parent().find('.pics-screen').removeClass('current-scroll');
	            	clearInterval(rightGoer);
	            }
	        );
    	
        jQuery('.pic-nav-left a').hover(
                function()
                {
	            	jQuery(this).parent().parent().find('.pics-screen').addClass('current-scroll');
	            	leftGoer = setInterval('goLeft()', 10);
                },
                function()
	            {
	            	jQuery(this).parent().parent().find('.pics-screen').removeClass('current-scroll');
	            	clearInterval(leftGoer);
	            }
            );
        
        if (jQuery('body#novosti').length) {
        	shortNews();
        }
        
        if (jQuery('#lokacije-karta').length) {
        	markupMap();
        }
    }
);

function shortNews()
{
	jQuery('div.news').each(
			function () {
				
				if (jQuery(this).find('p').length > 1) {
					//console.log('%s',jQuery(this).find('p:first').html());
					jQuery(this).find('p').hide();
					
					var linkText = (lang == 'en') ? 'More' : 'Više' ;
					jQuery(this).find('p:first').show().append('<br /><strong><a href="#" class="show-news">' + linkText + ' &#8595;</a></strong>');
					
					jQuery(this).find('p:first a.show-news').toggle(function() {showNews(this); }, function() {hideNews(this); });
					
					
				}
				
			}
	);
}

function showNews(linkElem) 
{
	jQuery(linkElem).closest('div.news').find('p').slideDown('slow');
	
	var linkText = (lang == 'en') ? 'Less' : 'Manje';
	jQuery(linkElem).closest('div.news').find('p:first a.show-news').html(linkText + " &#8593;");
	return false;
}

function hideNews(linkElem) 
{
	jQuery(linkElem).closest('div.news').find('p:gt(0)').slideUp('slow');
	var linkText = (lang == 'en') ? 'More' : 'Više';
	jQuery(linkElem).closest('div.news').find('p:first a.show-news').html(linkText + " &#8595;");
	return false;
}

var rightGoer;
var leftGoer;
function goRight()
{
	var visibleWidth = jQuery('.pics-screen.current-scroll').parent().width();
	var overflowWidth = jQuery('.pics-screen.current-scroll div').width();
	var maxMl = visibleWidth - overflowWidth;
	var ml = jQuery('.pics-screen.current-scroll div').css('margin-left');
	ml = parseInt(ml);
	ml -= 4;
	
	if (ml >= maxMl) {
		jQuery('.pics-screen.current-scroll div').css('margin-left', ml + 'px');
	}	
}

function goLeft()
{	
	var ml = jQuery('.pics-screen.current-scroll div').css('margin-left');
	ml = parseInt(ml);
	ml += 4;
	
	if (ml < 0) {
		jQuery('.pics-screen.current-scroll div').css('margin-left', ml + 'px');
	}	
}

function markupMap()
{
	loc = window.location.hash;
	if (loc) {
		locArray = loc.split('?');
		args = locArray[1].split(';');
		
		l = args.length;
		
		var titlePos = loc.indexOf('title:');
		
		var title = loc.substring(titlePos+6);
		
		
		filterFormat = false;
		filterAktivna = false;
		filterPozicija = false;
		filterLokacija = false;
		filterVelicina = false;
		pinpoint = false;
		
		for (i = 0; i < l; i++) {
			var arg = args[i].split(':');
			if (undefined == arg[1] || '' == arg[1] || null == arg[1]) {
				val = null;
			} else if (arg[0] == 'sel') {
				val = arg[1];
			} else {
				val = Base64.decode(arg[1]);
			}
			field = arg[0]; 
			
			switch(field) {
			case 'format':
				if (val != undefined && val != null) {
					filterFormat = true;
					fieldFormat = 'format';
					valFormat = val;
				}
				break;
			case 'poz':
				if (val != undefined && val != null) {
					filterPozicija = true;
					fieldPozicija = 'pozicija';
					valPozicija = val;
				}
				break;
			case 'vel':
				if (val != undefined && val != null) {
					filterVelicina = true;
					fieldVelicina = 'velicina';
					valVelicina = val;
				}
				break;
			case 'lok':
				if (val != undefined && val != null) {
					filterLokacija = true;
					fieldLokacija = 'lokacija';
					valLokacija = val;
				}
				break;
			case 'akt':
				if (val != undefined && val != null) {
					filterAktivna = true;
					fieldAktivna = 'aktivna';
					valAktivna = val;
				}
				break;
			case 'sel':
				pinpoint = true;
				pinpointValue = val;
				break;
			case 'tl':
				titleLokacija = val;
				break;
			case 'ta':
				titleAktivna = val;
				break;
			case 'tp':
				titlePozicija = val;
				break;
			case 'tv':
				titleVelicina = val;
				break;
			case 'tf':
				titleFormat = val;
				break;
			}
		}
		
		if (filterFormat) {
			filter(fieldFormat, valFormat, titleFormat);
		}
		if (filterAktivna) {
			filter(fieldAktivna, valAktivna, titleAktivna);
		}
		if (filterPozicija) {
			filter(fieldPozicija, valPozicija, titlePozicija);
		}
		if (filterLokacija) {
			filter(fieldLokacija, valLokacija, titleLokacija);
		}
		if (filterVelicina) {
			filter(fieldVelicina, valVelicina, titleVelicina);
		}
		
		if (pinpoint) {
			markerArray = new Array();
			
			markerId = 0;
			l = defaultMarkers.length;
			for (var x = 0; x < l; x++) {
				if (defaultMarkers[x]['id'] == pinpointValue) {
					markerId = x;
					break;
				} 
			}

			//createMarkers(markerArray);
			gmap.setZoom(14);
			centerMarker(pinpointValue, markerId);
		}
	}
}

/**
*
*  Base64 encode / decode
*  http://www.webtoolkit.info/
*
**/
 
var Base64 = {
 
	// private property
	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
 
	// public method for encoding
	encode : function (input) {
		var output = "";
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		var i = 0;
 
		input = Base64._utf8_encode(input);
 
		while (i < input.length) {
 
			chr1 = input.charCodeAt(i++);
			chr2 = input.charCodeAt(i++);
			chr3 = input.charCodeAt(i++);
 
			enc1 = chr1 >> 2;
			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
			enc4 = chr3 & 63;
 
			if (isNaN(chr2)) {
				enc3 = enc4 = 64;
			} else if (isNaN(chr3)) {
				enc4 = 64;
			}
 
			output = output +
			this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
			this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
 
		}
 
		return output;
	},
 
	// public method for decoding
	decode : function (input) {
		var output = "";
		var chr1, chr2, chr3;
		var enc1, enc2, enc3, enc4;
		var i = 0;
 
		input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
 
		while (i < input.length) {
 
			enc1 = this._keyStr.indexOf(input.charAt(i++));
			enc2 = this._keyStr.indexOf(input.charAt(i++));
			enc3 = this._keyStr.indexOf(input.charAt(i++));
			enc4 = this._keyStr.indexOf(input.charAt(i++));
 
			chr1 = (enc1 << 2) | (enc2 >> 4);
			chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
			chr3 = ((enc3 & 3) << 6) | enc4;
 
			output = output + String.fromCharCode(chr1);
 
			if (enc3 != 64) {
				output = output + String.fromCharCode(chr2);
			}
			if (enc4 != 64) {
				output = output + String.fromCharCode(chr3);
			}
 
		}
 
		output = Base64._utf8_decode(output);
 
		return output;
 
	},
 
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
 
}
