﻿// JavaScript Document

function uniPreloader(preloader_args){
	

//defining vars
    if(!preloader_args){
		preloader_args = new Object();
	}
    
	if(!preloader_args.action){
		//check current action status and determine an action 
	}
	
	if(!preloader_args.loaderPictSrc){
		preloader_args.loaderPictSrc =  '/images/standart_preloader.gif';
	}
	
	if(!preloader_args.useBg){
		preloader_args.useBg = false;
	}
	
	
	
	if(!preloader_args.loaderPictSize){
		preloader_args.loaderPictSize = {width:64,height:64};
	}
	
	
	var coordObject_data = {};
	if(!preloader_args.coordObject){
	preloader_args.coordObject = window.document.body;
	if(preloader_args.coordObject.id==""){
		window.document.body.id = Math.random()+'_id';
		 coordObject_data.id = window.document.body.id;
		 coordObject_data.width = window.document.body.offsetWidth;
		 coordObject_data.height = window.document.body.offsetHeight;
		 coordObject_data.x = 0;
		 coordObject_data.y = 0;
		//alert(preloader_args.coordObject.clientWidth);
	}
	}else{
	if(typeof(preloader_args.coordObject)=='object'){
		if(!preloader_args.coordObject.id){
			preloader_args.coordObject.id = Math.random()+'_id';
		}
	preloader_args.coordObject = preloader_args.coordObject.id;	
	
    }//end up if
	
	     coordObject_data.id = preloader_args.coordObject;
		 coordObject_data.width = $('#'+preloader_args.coordObject).innerWidth();
		 coordObject_data.height = $('#'+preloader_args.coordObject).innerHeight();
		 var coords = $('#'+preloader_args.coordObject).offset();
		 coordObject_data.x = coords.left;
		 coordObject_data.y = coords.top;
		
	}//end up else
	
	
	
	if(!preloader_args.coordPosition){
	preloader_args.coordPosition = 'center';
	}
	
	
	
	if(!preloader_args.parentObject){
		
	preloader_args.parentObject = document.body;
	}else{
	if(typeof(preloader_args.parentObject)=='string'){
	preloader_args.parentObject = document.getElementById(preloader_args.parentObject);	
    }//end up if
	}
	
	
	
	
	

	
//action

//creating array for preloaders
if(!document._universalPreloaderObjects){
	document._universalPreloaderObjects = new Array();

}



//show preloader
if(preloader_args.action == 'show'){
	
var currentPreloader = {id:document._universalPreloaderObjects.length, args:preloader_args}	
	
var loaderPict = document.createElement('img');
loaderPict.src = preloader_args.loaderPictSrc;
loaderPict.id = 'preloaderGraphic_'+currentPreloader.id;

if(preloader_args.useBg){
	
var loaderBg = document.createElement('div');
loaderBg.id = 'preloaderBg_'+currentPreloader.id;
loaderBg.innerHTML = '';

preloader_args.parentObject.appendChild(loaderBg);

$("#"+loaderBg.id).css({"background-color":"white","position":"absolute", "z-index":"998", "vertical-align":"middle", "text-align":"center", "left":coordObject_data.x, "top":coordObject_data.y});

$("#"+loaderBg.id).width(coordObject_data.width);
$("#"+loaderBg.id).height(coordObject_data.height);



loaderBg.style.opacity = '0.7';
loaderBg.style.KhtmlOpacity = '0.7';
loaderBg.style.MozOpacity = '0.7';
if(isIE){
loaderBg.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity=70)";
}


}//end up if useBg


if(!window.pageYOffset){
var scrollAdjust = document.documentElement.scrollTop;
}else{
var scrollAdjust = window.pageYOffset;	
}




//placing picture
if((preloader_args.parentObject != document.body)||((preloader_args.parentObject == document.body)&&(!loaderBg))){
	preloader_args.parentObject.appendChild(loaderPict);
	
	
	if(preloader_args.coordObject == document.body){
	var leftPos = coordObject_data.x+(screen.availWidth/2)-(preloader_args.loaderPictSize.width/2);
    var topPos = coordObject_data.y+((screen.availHeight/2)+scrollAdjust)-(preloader_args.loaderPictSize.height/2);
	}else{
	var leftPos = coordObject_data.x+(coordObject_data.width/2)-(preloader_args.loaderPictSize.width/2);
    var topPos = coordObject_data.y+(coordObject_data.height/2)-(preloader_args.loaderPictSize.height/2);	
	}
	
	
    $('#'+loaderPict.id).css({"position":"absolute", "z-index":"999", "vertical-align":"middle", "text-align":"center", "left":leftPos, "top":topPos});

	
}else{
loaderBg.appendChild(loaderPict);


if(preloader_args.coordObject == document.body){
var leftPos = (screen.availWidth/2)-(preloader_args.loaderPictSize.width/2);
var topPos = ((screen.availHeight/2)+scrollAdjust)-(preloader_args.loaderPictSize.height/2);
}else{
var leftPos = (coordObject_data.width/2)-(preloader_args.loaderPictSize.width/2);
var topPos = (coordObject_data.height/2)-(preloader_args.loaderPictSize.height/2);	
}



$('#'+loaderPict.id).css({"position":"absolute", "z-index":"999", "vertical-align":"middle", "text-align":"center", "left":leftPos, "top":topPos});
	
}//end up else

document._universalPreloaderObjects.push(currentPreloader);
return currentPreloader.id;

}//end up if status 0



//hide preloader
if(preloader_args.action == 'hide'){


var prelGraphic = document.getElementById('preloaderGraphic_'+preloader_args.id);
if(prelGraphic){
	prelGraphic.parentNode.removeChild(prelGraphic);
}
var prelBg = document.getElementById('preloaderBg_'+preloader_args.id);
if(prelBg){
	prelBg.parentNode.removeChild(prelBg);
}


return preloader_args;		
}//end up if !=0




	
}//end up func





