﻿var nZ = {};
var pup;
var isLoading = false;
var firstTime = true;

nZ.Thumbs = [];
nZ.zoomedImageId = 'zoom1';

nZ.getElementsByClassName = function(node, className) {
  var children = node.getElementsByTagName('*');
  var elements = new Array();

  for (var i = 0; i < children.length; i++) {
	var child = children[i];
	var classNames = child.className.split(' ');
	for (var j = 0; j < classNames.length; j++) {
	  if (classNames[j] == className) {
		elements.push(child);
		break;
	  }
	}
  }
  return elements;
}

// Add Event
nZ.addEvent = function(obj, evt, fnc) {
	// New Generation Browser (Firefox,Opera,Safari etc.)
	if(window.addEventListener) {
		obj.addEventListener(evt,fnc,false);
	}
	// IE
	else {
		obj.attachEvent('onload',fnc)
	}
}

// Remove Event
nZ.removeEvent = function(obj, evt, fnc) {
	// New Generation Browser (Firefox,Opera,Safari etc.)
	if(obj.removeEventListener) {
		obj.removeEventListener(evt,fnc,false);
	}
	// IE
	else {
		obj.detachEvent("on"+evt, fnc)
	}
}

// installiation function for selected thumb item
nZ.install = function(thumbItem) {
	
	if (thumbItem.length) {

		// Create thumbs list
		for (var i = 0; i < thumbItem.length; i++) {
			this.Thumbs.push(thumbItem[i]);
		}

		// Select the first item of thumb list
		document.getElementById('nzThumbs1').style.display = 'block';
		nZ.addEvent(window,'load',nZ.isMagicZoomPupCreate);
	}
	else {
		return false;	
	}
}

nZ.isMagicZoomPupCreate = function() {
	t = window.setInterval("nZ.findMagicZoomPup()",100);
}

nZ.findMagicZoomPup = function() {
	if(nZ.getElementsByClassName(document.getElementById(this.zoomedImageId), 'MagicZoomPup') != "") {
		this.Thumbs[0].onclick();
		firstTime = false;
		clearInterval(t);
	}
}

// this function for clicked thumb item
nZ.clickThumb = function(thumbItem, thumbNumber, zoomImageStatus, alt) {

	if(!isLoading && (!firstTime || thumbNumber == 1)){	

		// Stop Zooms
		MagicZoom_stopZooms();

		// Active current thumb
		nZ.selectThumb(thumbNumber);

		var zoomLink = document.getElementById(nZ.zoomedImageId);
		zoomLink.href = thumbItem.getAttribute('rev').split(",")[0];
		zoomLink.innerHTML = '<img alt=\''+ alt +'\' class=\'zoomedImage\' src=\'' + thumbItem.getAttribute('rev').split(",")[1] + '\'/>';
		
		if (!zoomImageStatus || thumbItem.href == 'javascript:;' || thumbItem.href == '#' || thumbItem.href == '') {
			document.getElementById('zoommsg').className = "hidden";
			nZ.getElementsByClassName(document.getElementById(this.zoomedImageId), 'zoomedImage')[0].style.cursor = "default";
			return false;
		}
		else {
			document.getElementById('zoommsg').className = "visible";
			nZ.getElementsByClassName(document.getElementById(this.zoomedImageId), 'zoomedImage')[0].style.cursor = "pointer";

			// Active Zooms
			MagicZoom_findZooms();
		}
		if(zoomImageStatus){
			isLoading = true;
			pup = setInterval("nZ.IsMagicZoomPupCreate()",100);
		}
	}
	
}

nZ.IsMagicZoomPupCreate = function() {
	var a =  nZ.getElementsByClassName(document.getElementById(this.zoomedImageId), 'MagicZoomPup')[0];
	if(a != undefined){
		isLoading = false;
		clearInterval(pup);
	}
}

nZ.selectThumb = function(thumbId) {

	// Reset all display of thumbs
	for (var i = 0; i < this.Thumbs.length; i++) {
		document.getElementById('nzThumbs'+(i+1)).style.display = 'none';
	}
	
	// Active current thumb
	document.getElementById('nzThumbs'+thumbId).style.display = 'block';
}