// HOME PAGE ELEMENTS
var webPages = new Array();
webPages['home'] = {bgElements:['mainMiddle1','mainMiddle2','mainMiddle3','mainMenu','bTrow','bSpacer1','bSpacer2','bSpacer3','bSpacer4','bBox1','bBox2','bBox3','bBrow'],
					bgElImages:['images/middle_bg_01.jpg','images/middle_bg_02.jpg','images/middle_bg_03.jpg','images/mainmenu.jpg','images/btrow.jpg','images/bspacer1.jpg','images/bspacer2.jpg','images/bspacer3.jpg','images/bspacer4.jpg','images/mainBox1.jpg','images/mainBox2.jpg','images/mainBox3.jpg','images/bbrow.jpg'],
					fgElements:['teamImage','lastProject','serviceImage'],
					fgElImages:['images/team.png','images/hotelsandanski_big.jpg','images/services.png'],	
					preloadOnly:['images/banner.jpg','images/banner_bg.jpg'],
					showAfter:['slogan','mainMenu','bBox1','bBox2','bBox3','footerText']};

webPages['about'] = {bgElements:['mainMiddle1','mainMiddle2','mainMenu','lbTrow','lblSpacer','wideBox','lbBrow','wtRtSpacer','wtRlSpacer','wtRrSpacer','wtRbSpacer','tallBox'],
					bgElImages:['images/middle_bg_01.jpg','images/middle_bg_02.jpg','images/mainmenu.jpg','images/wt_btrow.jpg','images/wt_blspacer.jpg','images/wt_widebox.jpg','images/wt_bbrow.jpg','images/wt_rtspacer.jpg','images/wt_rlspacer.jpg','images/wt_rrspacer.jpg','images/wt_rbspacer.jpg','images/wt_tallbox.jpg'],
					fgElements:['aboutImage','clientImage'],
					fgElImages:['images/about.png','images/clients.jpg'],	
					preloadOnly:['images/banner.jpg','images/banner_bg.jpg'],
					showAfter:['slogan','mainMenu','wideBox','tallBox','footerText']};

webPages['services'] = {bgElements:['mainMiddle1','mainMiddle2','mainMenu','lbTrow','lblSpacer','wideBox','lbBrow','wtRtSpacer','wtRlSpacer','wtRrSpacer','wtRbSpacer','tallBox'],
					bgElImages:['images/middle_bg_01.jpg','images/middle_bg_02.jpg','images/mainmenu.jpg','images/wt_btrow.jpg','images/wt_blspacer.jpg','images/wt_widebox.jpg','images/wt_bbrow.jpg','images/wt_rtspacer.jpg','images/wt_rlspacer.jpg','images/wt_rrspacer.jpg','images/wt_rbspacer.jpg','images/wt_tallbox.jpg'],
					fgElements:['servicesImage'],
					fgElImages:['images/services.jpg'],	
					preloadOnly:['webdesign_thumb.png','seo_thumb.png','db_thumb.png','photo_thumb.png','print_thumb.png','webdesign_image.png','seo_image.jpg','programming_image.jpg','photo_image.jpg','print_image.jpg','images/banner.jpg','images/banner_bg.jpg'],
					showAfter:['slogan','mainMenu','wideBox','tallBox','footerText']};

webPages['portfolio'] = {bgElements:['mainMiddle1','mainMenu','pLSpacer','ptWideBox','pRSpacer','pBSpacer','pbltspacer','pbmtspacer','pbrtspacer','pblmspacer','pbrmspacer','pbbspacer','pbWideBox'],
					bgElImages:['images/middle_bg_01.jpg','images/mainmenu.jpg','images/p_lspacer.jpg','images/p_twidebox.jpg','images/p_rspacer.jpg','images/p_bspacer.jpg','images/pbltspacer.jpg','images/pbmtspacer.jpg','images/pbrtspacer.jpg','images/pblmspacer.jpg','images/pbrmspacer.jpg','images/pbbspacer.jpg','images/p_bwidebox.jpg'],
					fgElements:[],
					fgElImages:[],	
					preloadOnly:['images/banner.jpg','images/banner_bg.jpg'],
					showAfter:['slogan','mainMenu','footerText','ptWideBox','pbWideBox']};


webPages['partners'] = {bgElements:['mainMiddle1','mainMiddle2','mainMenu','lbTrow','lblSpacer','wideBox','lbBrow','wtRtSpacer','wtRlSpacer','wtRrSpacer','wtRbSpacer','tallBox'],
					bgElImages:['images/middle_bg_01.jpg','images/middle_bg_02.jpg','images/mainmenu.jpg','images/wt_btrow.jpg','images/wt_blspacer.jpg','images/wt_widebox.jpg','images/wt_bbrow.jpg','images/wt_rtspacer.jpg','images/wt_rlspacer.jpg','images/wt_rrspacer.jpg','images/wt_rbspacer.jpg','images/wt_tallbox.jpg'],
					fgElements:['aboutImage','clientImage'],
					fgElImages:['images/about.png','images/clients.jpg'],	
					preloadOnly:['images/banner.jpg','images/banner_bg.jpg'],
					showAfter:['slogan','mainMenu','wideBox','tallBox','footerText']};

webPages['contact'] = {bgElements:['mainMiddle1','mainMiddle2','mainMenu','lbTrow','lblSpacer','wideBox','lbBrow','wtRtSpacer','wtRlSpacer','wtRrSpacer','wtRbSpacer','tallBox'],
					bgElImages:['images/middle_bg_01.jpg','images/middle_bg_02.jpg','images/mainmenu.jpg','images/wt_btrow.jpg','images/wt_blspacer.jpg','images/wt_widebox.jpg','images/wt_bbrow.jpg','images/wt_rtspacer.jpg','images/wt_rlspacer.jpg','images/wt_rrspacer.jpg','images/wt_rbspacer.jpg','images/wt_tallbox.jpg'],
					fgElements:['aboutImage','contactImage'],
					fgElImages:['images/about.png','images/contact.jpg'],	
					preloadOnly:['images/banner.jpg','images/banner_bg.jpg'],
					showAfter:['slogan','mainMenu','wideBox','tallBox','footerText']};

webPages['thankyou'] = {bgElements:['mainMiddle1','mainMiddle2','mainMenu','lbTrow','lblSpacer','wideBox','lbBrow','wtRtSpacer','wtRlSpacer','wtRrSpacer','wtRbSpacer','tallBox'],
					bgElImages:['images/middle_bg_01.jpg','images/middle_bg_02.jpg','images/mainmenu.jpg','images/wt_btrow.jpg','images/wt_blspacer.jpg','images/wt_widebox.jpg','images/wt_bbrow.jpg','images/wt_rtspacer.jpg','images/wt_rlspacer.jpg','images/wt_rrspacer.jpg','images/wt_rbspacer.jpg','images/wt_tallbox.jpg'],
					fgElements:['aboutImage','contactImage'],
					fgElImages:['images/about.png','images/contact.jpg'],	
					preloadOnly:['images/banner.jpg','images/banner_bg.jpg'],
					showAfter:['slogan','mainMenu','wideBox','tallBox','footerText']};

// PAGE LOADER CLASS
var Pageloader = {
  bgElements:[],
  bgCallbacks: [],
  bgImages: [],
  bgLoadedImages: [],
  bgImagesLoaded: 0,
  fgElements:[],
  fgCallbacks: [],
  fgImages: [],
  fgLoadedImages: [],
  fgImagesLoaded: 0,
  preloadOnly:[],
  preloadedImages:[],
  showafterBG:[],
  pageName:'',
  lang:'',
  
  add: function(image,elem,target,elemArray){
    if (typeof image == 'string') target.push(image);
    if (typeof image == 'array' || typeof image == 'object'){
      for (var i=0; i< image.length; i++){
        target.push(image[i]);
      }
    }
	// add the correct banner
	
    if (typeof elem == 'string') elemArray.push(elem);
    if (typeof elem == 'array' || typeof elem == 'object'){
      for (var i=0; i< elem.length; i++){
        elemArray.push(elem[i]);
      }
    }
  },
  getLang: function() {
	  var str=document.cookie;
	  var zstr = "language=";
	  var start = str.indexOf(zstr,0);
	  if (start==-1){
		  return false;
	  } else {
		  start += zstr.length;
		  var end=str.indexOf(";",start);
		  if (end==-1) end =str.length;
		  return unescape(str.substring(start,end));
	  }
	  
  },
  setCss: function(pageName,lang) {
	this.pageName=pageName;
	var v_css = document.createElement('link');
	v_css.rel = 'stylesheet';
	v_css.type = 'text/css';

	this.lang = lang; //this.getLang();
//	alert("css lang:"+this.lang);
	//alert('style/sandanskiweb_'+this.lang+'.css');
	if (this.readCookie()) {
		v_css.href = 'style/sandanskiweb_'+this.lang+'.css';		
		document.getElementsByTagName('head')[0].appendChild(v_css);
	} else {
		v_css.href = 'style/sandanskiweb_preload_'+this.lang+'.css';		
		document.getElementsByTagName('head')[0].appendChild(v_css);
	}
	//alert('added css:'+v_css.href);
  },
  writeCookie: function() {
	  var expire = new Date();
	  expire.setMonth(expire.getMonth()+1);
	  document.cookie = this.pageName+"_preloaded=yes;expires="+expire+";path=/";
  },
  readCookie: function() {
	  var str=document.cookie;
	  var zstr = this.pageName +"_preloaded=";
	  var start = str.indexOf(zstr,0);
	  if (start==-1){
		  return false;
	  } else {
		  start += zstr.length;
		  var end=str.indexOf(";",start);
		  if (end==-1) end =str.length;
		  return unescape(str.substring(start,end));
	  }
  },
  init: function(pageData) {
			this.add(pageData.bgElImages,pageData.bgElements,this.bgImages,this.bgElements);
			this.add(pageData.fgElImages,pageData.fgElements,this.fgImages,this.fgElements);
			this.preloadOnly = pageData.preloadOnly;
			this.showafterBG = pageData.showAfter;
			// add the correct banner
//			alert('need to add banner:'+'images/banner_'+this.lang+'.jpg'
			this.bgElements.push('banner');
			this.bgImages.push('images/banner_'+this.lang+'.jpg');
  },
  addBG: function(image,elem){
	this.add(image,elem,this.bgImages,this.bgElements);
  },
  addFG: function(image,elem){
	this.add(image,elem,this.fgImages,this.fgElements);
  },
  onBGFinish: function(func){
    if (typeof func == 'function') this.bgCallbacks.push(func);
    if (typeof func == 'array' || typeof func == 'object'){
      for (var i=0; i< func.length; i++){
        this.bgCallbacks.push(func[i]);
      }
    }
  },
  onFGFinish: function(func){
    if (typeof func == 'function') this.fgCallbacks.push(func);
    if (typeof func == 'array' || typeof func == 'object'){
      for (var i=0; i< func.length; i++){
        this.fgCallbacks.push(func[i]);
      }
    }
  },
  load: function(pageName){
//	  	alert('load:'+pageName);
	  	this.pageName = pageName;
		this.init(webPages[pageName]);
		// check for cookie
//		alert('language:'+this.lang);
		if (this.readCookie()) {
			// just (re-set) the foreground images and the correct banner
			document.getElementById('banner').style.backgroundImage = 'url(images/banner_'+this.lang+'.jpg)';
			//alert('setting banner:images/banner_'+this.lang+'.jpg');
			//alert(document.getElementById('banner'));
			for (var i=0; i< this.fgElements.length; i++){
				document.getElementById(this.fgElements[i]).src = this.fgImages[i];
			}
			this.fireFinish();
		} else {
			for(var i=0; i<this.bgImages.length; i++){
			 // document.getElementById(this.bgElements[i]).style.background = 'transparent';
			  this.bgLoadedImages[i] = new Image();
		//	  alert('loading:'+this.bgImages[i]);
			  this.bgLoadedImages[i].onload = function(){ Pageloader.checkBGFinished.apply(Pageloader) }
			  this.bgLoadedImages[i].src = this.bgImages[i];
			}
			for(var i=0; i<this.preloadOnly.length; i++){
			  this.preloadedImages[i] = new Image();
			  this.preloadedImages[i].src = this.preloadOnly[i];
			}
		}
  }, 
  checkBGFinished: function(){
    this.bgImagesLoaded++;
	//alert('bg load check:'+this.bgImagesLoaded+" loaded of "+this.bgImages.length);
    if (this.bgImagesLoaded == this.bgImages.length) {
//		alert('bg loaded');
      	for (var i=0; i< this.bgElements.length; i++){
			document.getElementById(this.bgElements[i]).style.backgroundImage = 'url('+this.bgImages[i]+')';
      	}

		for (var i=0; i<this.bgCallbacks.length; i++){
		  this.bgCallbacks[i]();
		}
  		for (var i=0; i< this.showafterBG.length; i++){
			document.getElementById(this.showafterBG[i]).style.visibility = 'visible';
		}
		this.bgImages = [];
		this.bgLoadedImages = [];
		this.bgImagesLoaded = 0;
		this.bgCallbacks = [];
		if (this.fgImages.length==0) {
			this.fireFinish();
		}
    	for(var i=0; i<this.fgImages.length; i++){
        	this.fgLoadedImages[i] = new Image();
        	this.fgLoadedImages[i].onload = function(){ Pageloader.checkFGFinished.apply(Pageloader) }
        	this.fgLoadedImages[i].src = this.fgImages[i];
		}
	}
  },
  checkFGFinished: function(){
    this.fgImagesLoaded++;
    if (this.fgImagesLoaded == this.fgImages.length) {
		for (var i=0; i< this.fgElements.length; i++){
			document.getElementById(this.fgElements[i]).src = this.fgImages[i];
    	}
		for (var i=0; i<this.fgCallbacks.length; i++){
		  this.fgCallbacks[i]();
		}
		
		this.fireFinish();
	}
  },
  fireFinish: function(){
	this.writeCookie();
    this.fgImages = [];
    this.fgLoadedImages = [];
    this.fgImagesLoaded = 0;
    this.fgCallbacks = [];
	this.bgElements = [];
	this.fgElements = [];
  	this.preloadOnly=[];
  	this.preloadedImages=[];
	
  }
}

