var enableWide	= true;
var enablePopup = false;

var scrollInterval = null;

var bigImageW	= 600;
var bigImageH	= 550;

var imgLeft = 0;
var imgTop = 0;
var cursorX;
var cursorY;
var loaded = false;
var opacity = 0;

var z=0;
var i = 0;
var imgObj;
var tmpImgObj;
imgs = new Array();
var bigImgs = new Array();
var popupIndex;

var bigImageObj;
var scrollY;
var ext; var extIndex;
var myWidth = 0, myHeight = 0; 


/*Browser initialization*/
var isOpera=self.opera
var ie=document.all&&document.getElementById&&!isOpera
var ns6=document.getElementById&&!document.all


/*Event initialization*/
function initGallery_popup(){
   
   if(enablePopup){
     cashPopupGallery();
   }
   
   if (!parent.document.getElementById('templateframe') && document.getElementById("galleryImagesDiv")){
   	document.getElementById("galleryImagesDiv").style.border = "none";
   	getChildNodes(document.getElementById("galleryImagesDiv"));
   	
   	if(bigImgs.length <= 1) {
   		document.getElementById("buttonLeft").src = "img_0/button_left_hid.gif";   		
   		document.getElementById("buttonRight").src = "img_0/button_right_hid.gif";
   		
   		document.getElementById("buttonLeft").style.cursor = "default"; 
   		document.getElementById("buttonRight").style.cursor = "default"; 
   	}
   	
   	//for(i=0; i<bigImgs.length; i++)
   		//alert(bigImgs[i].src);
   	
    	if(ie||isOpera){
    		document.attachEvent("onmouseover", imgOver);
    		document.attachEvent("onmouseout", imgOut);
    		document.attachEvent("onclick", imgClick);
           
    	}else{
    		document.addEventListener("mouseover", imgOver, true)
    		document.addEventListener("mouseout", imgOut, true)
    		document.addEventListener("click", imgClick, true)
    	}
    }
}

/*IE event initialization*/
/*
function ieEvent(){
    if(event.type == 'click' && enableWide)
	imgClick(event);	

	if(event.type == 'mouseover' && (enablePopup || enableWide))
	imgOver(event);	
	
	if(event.type == 'mouseout' && enablePopup)
	imgOut(event);		
}*/

function imgClick(pEv){
	
	pEv = (pEv) ? pEv : window.event;	
	//cEl = (pEv.srcElement) ? pEv.srcElement : (pEv.target) ? pEv.target : null;
    //alert("Super!");
    initScreen();
      
   if(enableWide){ 
        if(pEv.srcElement) 
            lEl=pEv.srcElement;
    	else 
    	    lEl=pEv.target;
    	    
        if(lEl && lEl.tagName) {
        	alert    
        	if(lEl.tagName == "IMG" && lEl.src.indexOf("gallery") > 0 && document.getElementById("innerWideDiv").style.display == 'none'){
        	    if(enablePopup) hidePopup();
        	    tmpImgObj = lEl;
        	    openWide(lEl);
        	}
        }
        
        if(lEl && lEl.tagName) {	    
        	if((lEl.tagName == "DIV" || lEl.tagName == "IMG") &&
        	     (lEl.id == "closeImg" || lEl.id == "wideDiv" || lEl.id == "innerWideDiv" || lEl.id == "wideImg")){
        	    if(loaded) {
        	       closeWide();
        	       loaded = false;
        	    }
        	}
        }   
    } 
}

function imgOver(pEv){
	pEv = (pEv) ? pEv : window.event;
      cursorX = pEv.clientX;
      cursorY = pEv.clientY;   
    
    if(pEv.srcElement) 
        lEl=pEv.srcElement;
	else 
	    lEl=pEv.target;
	 
	if(lEl && lEl.tagName) {	    
    	if(lEl.tagName == "IMG" && lEl.src.indexOf("gallery") > 0 && document.getElementById("innerWideDiv").style.display == 'none'){
    	    if(ie) lEl.style.cursor = 'hand';
    	    if(ns6 || isOpera) lEl.style.cursor = 'pointer';
    	    
    	    imgObj = lEl;
    	    
    	    loadImgs();
    	    
    	    if(enablePopup) showPopup(imgObj);
    	}
    }
}

function imgOut(pEv){
 pEv = (pEv) ? pEv : window.event;
    if(pEv.srcElement) 
        lEl=pEv.srcElement;
	else 
	    lEl=pEv.target;
	    
    if(lEl && lEl.tagName) {	    
    	if(lEl.tagName == "IMG" && lEl.src.indexOf("gallery") > 0 && document.getElementById("innerWideDiv").style.display == 'none'){
    	    lEl.style.cursor = '';
    	    hidePopup();
    	}
    }
}


function initScreen(){

    if( typeof( window.innerWidth ) == 'number' ){
         //Non-IE 
         myWidth = parent.window.innerWidth; 
         myHeight = parent.window.innerHeight; 
    } else if( parent.document.documentElement && 
             ( parent.document.documentElement.clientWidth || 
               parent.document.documentElement.clientHeight ) ) {
                //IE 6+ in 'standards compliant mode' 
                
                myWidth = parent.document.documentElement.clientWidth; 
                myHeight = parent.document.documentElement.clientHeight;
    } else if( parent.document.body && 
             ( parent.document.body.clientWidth || 
               parent.document.body.clientHeight ) ) {
               
                //IE 4 compatible 
                myWidth = parent.document.body.clientWidth; 
                myHeight = parent.document.body.clientHeight; 
    } 
} 



//
//
//
//
//  bigImg functions
//
//
//

function cashBigImg(){
    
    if(z > 3){
	    bigImageObj.width = bigImageW;
	    bigImageObj.height = bigImageH;
        document.getElementById("wideImg").style.width = bigImageObj.width;
	    document.getElementById("wideImg").style.height = bigImageObj.height;	    
	    return true;   
    }
    
    z++;
    bigImageObj = new Image();
    extIndex = tmpImgObj.src.lastIndexOf(".");
    ext = tmpImgObj.src.substr(extIndex);
    bigImageObj.src = tmpImgObj.src.substr(0, extIndex) + "_big" + ext;
    
    document.getElementById("wideImg").src = bigImageObj.src;
	document.getElementById("wideImg").style.width = bigImageW;
	document.getElementById("wideImg").style.height = bigImageH;
    
    detectImgParam();
}

function detectImgParam(){

    if(bigImageObj.width == 0 || bigImageObj.height == 0) {
	   if(isOpera){
    	    bigImageObj.width = bigImageW;
    	    bigImageObj.height = bigImageH;
            document.getElementById("wideImg").style.width = bigImageW;
    	    document.getElementById("wideImg").style.height = bigImageH;	    
	   }else{
	        cashBigImg();
	   }
	}  
        
    imgTop = myHeight/2 - bigImageH/2;
    imgTop = (imgTop > 20) ? 20 : imgTop;
    imgLeft = myWidth/2 - bigImageW/2;

	
	setTimeout("showWideBlock()", 1000);
}




function openWide(pElem) {
	
	
    detectScroll();
	divElem = document.getElementById('wideDiv');
	divElem.style.height = "0px";
	divElem.style.width = "0px";
	divElem.style.display = 'block';
		    
	doWide();
	setTimeout("showLoading()", 500);
	cashBigImg();
	
	if(ns6) {
		document.body.style.overflow = "hidden";
		document.body.scrollTop = scrollY;
		scrollInterval = setInterval(function(){document.body.scrollTop = scrollY;}, 600);
        //window.pageYOffset = scrollY;
    } else {
        //scrollY = document.body.scrollTop;
        document.body.style.overflow = "hidden";   
    }
	
	//if(ie)
		
}

function showWideBlock(){
   hideLoading();
   document.getElementById("innerWideDiv").style.display = 'block'; 
   loaded = true;	   
}

function doWide(){
        	
	divElem = document.getElementById("wideDiv");
	documentHeight = document.documentElement.clientHeight; // FF, Safari
    if(documentHeight < document.body.scrollHeight) // Opera, IE
        documentHeight = document.body.scrollHeight

    documentWidth = document.documentElement.clientWidth;
    if(documentWidth < document.body.clientWidth) // Opera, IE
        documentWidth = document.body.clientWidth 
                            
	if(i <= documentHeight ){
		
		divElem.style.height = i;
		divElem.style.width = documentWidth;
		i += 150;
		setTimeout("doWide()", 1);
		
	}else{
		divElem.style.height = documentHeight;	        
		if(ie){
			var oAlpha = divElem.filters['DXImageTransform.Microsoft.alpha'] || divElem.filters.alpha;
			oAlpha.opacity = 80;
		}else{
			divElem.style.opacity = 0.80;
		}
   		
   		
   		document.getElementById("innerWideDiv").style.left = imgLeft;
    	document.getElementById("innerWideDiv").style.top = imgTop+scrollY;
	}
}

function closeWide() {
	
	if(ie){
		divElem = document.getElementById("wideDiv");
		var oAlpha = divElem.filters['DXImageTransform.Microsoft.alpha'] || divElem.filters.alpha;
		oAlpha.opacity = 100;
	}else{
		document.getElementById("wideDiv").style.opacity = 1;
	}	
		
	i=0;
    z=0;
	document.getElementById("innerWideDiv").style.display = 'none';
	document.getElementById("wideDiv").style.display = 'none';

    document.getElementById("wideImg").src = "img_0/1px.gif";
	document.getElementById("wideImg").style.width = 1;
	document.getElementById("wideImg").style.height = 1;
	
	if(ns6)
		clearInterval(scrollInterval);
	
	document.body.style.overflow = "scroll";   
}



function showLoading() {
	var processLoadingObj = document.getElementById('loadProcessBlock');

       
	processLoadingObj.style.top = myHeight/2 + scrollY-100;
	processLoadingObj.style.left = myWidth/2-100;
	processLoadingObj.style.display = 'block';
	//document.body.scrollTop = scrollY;

}


function hideLoading() {
	var processLoadingObj = document.getElementById('loadProcessBlock');
	processLoadingObj.style.display = 'none';
}






//
//
//
//
// Popup functions
//
//
//
//
function cashPopupGallery(){
    a=0;
    tempImgs = new Array();
    str ='';
    for(var i=0; i < document.images.length; i++){
        if(document.images[i].src.indexOf("galery") > 0){        
            imgObj = document.images[i];
        	extIndex = imgObj.src.lastIndexOf(".");
        	ext = imgObj.src.substr(extIndex);
            
            tempImgs[tempImgs.length] = new Image();
            tempImgs[tempImgs.length-1] = imgObj;
        }
    }
    
    tmpImgsLen = tempImgs.length;
    
    if(tmpImgsLen > 0){
        for( k = 0; k < tmpImgsLen; k++){
            extIndex = tempImgs[k].src.lastIndexOf(".");
            ext = tempImgs[k].src.substr(extIndex);
            
        	start = extIndex-2;
            indx = tempImgs[k].src.substr(start, 2);	
            
            if(indx/indx != 1){
                start = extIndex-1;
                indx = tempImgs[k].src.substr(start, 1);
            } 
                       
            imgs[indx] = new Image();
            imgs[indx].src = tempImgs[k].src.substr(0, extIndex) + "_popup" + ext;
            imgs[indx].style.width = tempImgs[k].width;
            imgs[indx].style.height = tempImgs[k].height;
            
        }
     }
}

function loadImgs(){
    
    oldSrc = imgObj.src;
	extIndex = oldSrc.lastIndexOf(".");
	ext = oldSrc.substr(extIndex);
	start = extIndex-2;
    indx = imgObj.src.substr(start, 2);	
    
    if(indx/indx != 1){
        start = extIndex-1;
        indx = imgObj.src.substr(start, 1);
    }    
    
    if(enablePopup){
        popupIndex = indx;
        
        document.getElementById("popupImg").src = imgs[indx].src;
       	document.getElementById("popupImg").style.width = imgs[indx].width;
       	document.getElementById("popupImg").style.height = imgs[indx].height;    
    }
}

function detectScroll(){
    if(ns6){
        scrollY = window.pageYOffset;
    }else{
        scrollY = document.body.scrollTop;    
    }
}

function showPopup() {
	
	detectScroll();
	initScreen();	
	
	if((myHeight-cursorY) < 1.2*imgs[popupIndex].height){
	    document.getElementById("popupDiv").style.top = cursorY+scrollY-imgs[popupIndex].height-35;
    }else{
        document.getElementById("popupDiv").style.top = cursorY+scrollY+35;
    }
    
	document.getElementById("popupDiv").style.left = cursorX - imgs[popupIndex].width/2;
	document.getElementById("popupDiv").style.display = 'block';
		
	setTimeout("changeOpacity()", 100);
}

function changeOpacity(){
	
  elem = document.getElementById("popupImg");
	
  if (ie) {
		
	var oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
    if(oAlpha.opacity < 100){
		oAlpha.opacity = opacity*100;		
		opacity += 0.1; 
		setTimeout("changeOpacity()", 100);		
	}
     
  } else {
	
	if(document.getElementById("popupImg") && document.getElementById("popupImg").style.opacity < 1){
		document.getElementById("popupImg").style.opacity = opacity;
		opacity += 0.1; 
		setTimeout("changeOpacity()", 100);		
	}
  }
}

function hidePopup(){
    
    elem = document.getElementById("popupImg");
	opacity = 0;
	if(ie){
		var oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
		oAlpha.opacity = opacity*100;
	}else{
		document.getElementById("popupImg").style.opacity = opacity;
	}
	
	document.getElementById("popupDiv").style.display = 'none';
	document.getElementById("popupImg").src = 'img_0/1px.gif';
	document.getElementById("popupImg").style.width = '1px';
	document.getElementById("popupImg").style.height = '1px';

}

window.onresize = function (){
    if(document.getElementById('wideDiv') && document.getElementById('wideDiv').style.display == 'block'){
        closeWide();
        initScreen();
        openWide();
    }
}
//window.onload = initGallery_popup;
var isOpera = self.opera
var isIE = document.all && !isOpera;

if(isIE || isOpera) {
	window.attachEvent("onload", initGallery_popup);
} else {
	window.addEventListener("load", initGallery_popup, true);
}


function getChildNodes(obj) {
	
	if (!parent.document.getElementById('templateframe') && obj) {
			
		var childNodes;
		var i;
		if(obj.childNodes) {
			childNodes = obj.childNodes;
			for(i=0; i<childNodes.length; i++) {
				
				if(childNodes[i].nodeType == 1 && childNodes[i].tagName == "IMG" && childNodes[i].src.indexOf("gallery") >0) {
					
					bigImgs[bigImgs.length] = new Image();
					extIndex = childNodes[i].src.lastIndexOf(".");
					ext = childNodes[i].src.substr(extIndex);			
					bigImgs[bigImgs.length - 1].src = childNodes[i].src.substr(0, extIndex) + "_big" + ext;		
												
				} else if (childNodes[i].nodeType == 1) {
					getChildNodes(childNodes[i]);
				}
			}	
				
		} else {
			return false;	
		}
	}
}

function nextImage() {
	bigImageObj = document.getElementById("wideImg");
	currIndex = getIndexInImgArray(bigImageObj.src);
	
	if(currIndex + 1 >= bigImgs.length)
		currIndex = 0;
	else
		++currIndex;
		
	document.getElementById("wideImg").src = bigImgs[currIndex].src;
}

function prevImage() {
	bigImageObj = document.getElementById("wideImg");
	currIndex = getIndexInImgArray(bigImageObj.src);
	
	if(currIndex == 0)
		currIndex = bigImgs.length - 1;
	else
		--currIndex;
		
	document.getElementById("wideImg").src = bigImgs[currIndex].src;
}

function getIndexInImgArray(pImgSrc) {
	for(i=0; i<bigImgs.length; i++) {
		if(bigImgs[i].src == pImgSrc)
			return i;
	}
	return -1;
}