/**
* SJF - Simple Javascript Framework Addons by Ikeris
* The file contains the functions of extending the operation of the basic framework
* Use this free for any non-commercial and commercial products
*/

/**
* Load image gallery via ajax and fade in out
*
*/
var loadGallery = function(imagecontainerclass, objects){

	var gallery = getElementsByClassName(imagecontainerclass);
	if (gallery.length < 1) { return false; }
	
	var addr = addParamMakeNewURL('page_id=22'); // Template Name: Load homepage gallery
	DOMAssistant.AJAX.get(addr,function(r) {
		$(gallery[0]).replaceContent(r);
		fadeingGallery.init(imagecontainerclass, objects); // make fade in-out gallery on home page
	});
};

/**
 * Function fadeingGallery
 * Disappearance and appearance of photos in the gallery of fade in and fade out in each other.
 * 
 * @params $gclass a name or reference to gallery list
 */

var fadeingGallery = {
	i : 0,
	current : 0,
	imgs : [],

	init : function(gclass, objects){
	
		objects = objects || "img";

		var gallery = getElementsByClassName(gclass);
		if (gallery.length < 1) { return false; }

		fadeingGallery.imgs = gallery[0].getElementsByTagName(objects);

		var i = fadeingGallery.imgs.length;
		while(i--){
			fadeingGallery.imgs[i].oOpacity = 0;
		}
		//fadeingGallery.imgs[0].style.display = "block"; // remove this show content immediately
		fadeingGallery.imgs[0].oOpacity = 0.99;
		setTimeout(fadeingGallery.inout,500);
	},
	
	inout : function(){

		var cOpacity = fadeingGallery.imgs[fadeingGallery.current].oOpacity;
		var nIndex = fadeingGallery.imgs[fadeingGallery.current+1] ? fadeingGallery.current+1 : 0;
		var nOpacity = fadeingGallery.imgs[nIndex].oOpacity;
		cOpacity -= 0.02; // speed fade out
		nOpacity += 0.02; // speed fade in


		fadeingGallery.imgs[fadeingGallery.current].oOpacity = cOpacity;
		fadeingGallery.imgs[nIndex].oOpacity = nOpacity;
		setOpacity(fadeingGallery.imgs[fadeingGallery.current]);
		setOpacity(fadeingGallery.imgs[nIndex]);
		if(cOpacity <= 0){
			fadeingGallery.imgs[fadeingGallery.current].style.display = "none";
			fadeingGallery.current = nIndex;
			setTimeout(fadeingGallery.inout,4500);
		}
		else{
			//setTimeout(fadeingGallery.inout,25);
			setTimeout(function() {
				// Calculate margin top
				var calcmargintop = (246 - parseInt(fadeingGallery.imgs[nIndex].clientHeight, 10)) / 2;
				calcmargintop = (calcmargintop < 0) ? 0 : calcmargintop;
				//fadeingGallery.imgs[nIndex].style.marginTop = calcmargintop + "px";
				
				// Calculate margin left
				var calcmarginleft = (280 - parseInt(fadeingGallery.imgs[nIndex].clientWidth, 10)) / 2;
				calcmarginleft = (calcmarginleft < 0) ? 0 : calcmarginleft;
				fadeingGallery.imgs[nIndex].style.marginLeft = calcmarginleft + "px";

				fadeingGallery.imgs[nIndex].style.display = "block";
				fadeingGallery.inout();
			}, 50);
		}
	}
};

/**
 * Run all funtions after page is loaded complete
 */
DOMAssistant.DOMReady(function(){
	loadGallery("imageContainer", "li");
	addGoogleStats('UA-7834092-2'); // initialise Google Stats
})