//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//                           SMSys Article Details
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

//******************************************************************************
// Details Text Size
//******************************************************************************
// DOM storage (window.sessionStorage and window.localStorage) is implemented in 
// FireFox, Chrome, Opera and IE8
//..............................................................................
// SessionStorage is tab and window independent while localStorage isn't
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

var minFontSize = 10;
var maxFontSize = 30;

var detailsDefaultFontSize = resolutionBasedDetailsDefaultFontSize();

//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

function resolutionBasedDetailsDefaultFontSize() {
   //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   // mostly used resolution width are 800, 1024, 1152, 1280, 1366, 1440, 1680, 1920
   //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
   var resolution;

   if(screen.width <= 800) {
      resolution = 13;
   } else if(screen.width <= 1024) {
      resolution = 18;    // concerning article details, don't go bellow 18px for 1024 when using Tahoma
   } else if(screen.width <= 1152) {
      resolution = 18;
   } else if(screen.width <= 1280) {
      resolution = 21;
   } else if(screen.width <= 1366) {
      resolution = 22;    // a guess
   } else if(screen.width <= 1440) {
      resolution = 23;    // a guess
   } else if(screen.width <= 1680) {
      resolution = 25;    // a guess
   } else if(screen.width <= 1920) {
      resolution = 27;    // a guess
   } else {
      resolution = 28;    // a guess
   }
   
   return resolution;
}

//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

function increaseFontSize() {
   
   var detailsText = document.getElementById('detText');
   
   if(detailsText.style.fontSize) {
      var fontSize = parseInt(detailsText.style.fontSize);
   } else {
      var fontSize = detailsDefaultFontSize;
   }
   
   if(fontSize < maxFontSize) {
      fontSize++; 
   }
   
   if(window.localStorage) {
      localStorage.detailsFontSize = fontSize;
   }
   
   detailsText.style.fontSize = fontSize + 'px';
}

//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

function decreaseFontSize() {
   
   var detailsText = document.getElementById('detText');
   
   if(detailsText.style.fontSize) {
      var fontSize = parseInt(detailsText.style.fontSize);
   } else {
      var fontSize = detailsDefaultFontSize;
   }
   
   if(fontSize > minFontSize) {
      fontSize--;
   }   
   
   if(window.localStorage) {
      localStorage.detailsFontSize = fontSize;
   }
   
   detailsText.style.fontSize = fontSize + 'px';
}

//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

function defaultFontSize() {

   var detailsText = document.getElementById('detText');      

   detailsText.style.fontSize = detailsDefaultFontSize + 'px';

   if(window.localStorage) {
      localStorage.detailsFontSize = detailsDefaultFontSize;
   }
}

//oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

function currentFontSize() {

   var currentFontSize;
   var detailsText = document.getElementById('detText');      

   if(!window.localStorage) {
      currentFontSize = detailsDefaultFontSize;
   } else if(localStorage.detailsFontSize) {
      currentFontSize = localStorage.detailsFontSize;
   } else {
      currentFontSize = detailsDefaultFontSize;
      localStorage.detailsFontSize = detailsDefaultFontSize;
   }
      
   detailsText.style.fontSize = currentFontSize + 'px';
}

//******************************************************************************
//
//******************************************************************************

function toggleImageSize(image, imageNormalWidth, imageNormalHeight, removeImageTitle) {
   //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   // In javascript all functions are also objects and we can use this fact to 
   // simulate static variables.
   //---------------------------------------------------------------------------
   // <img onclick="toggleImageSize(this, 386, 306, true)" 
   //      style="cursor: pointer"
   //      title="إضغط على الصورة لإظهارها بحجمها الطبيعي"
   //  ... />
   //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
   if(typeof toggleImageSize.imageSize == 'undefined') {
      //------------------------------------------------------------------------
      // initialize static variables
      //------------------------------------------------------------------------
      toggleImageSize.imageSize = 'initial';
      toggleImageSize.imageInitialWidth  = image.width;
      toggleImageSize.imageInitialHeight = image.height;

      //------------------------------------------------------------------------
      // remove image title
      //------------------------------------------------------------------------
      if(removeImageTitle) {
         image.title = '';
      }
   }

   if(toggleImageSize.imageSize == 'initial') {
      image.width  = imageNormalWidth;
      image.height = imageNormalHeight;
      toggleImageSize.imageSize = 'normal';
   } else {
      image.width  = toggleImageSize.imageInitialWidth;
      image.height = toggleImageSize.imageInitialHeight;
      toggleImageSize.imageSize = 'initial';
   }
}

//******************************************************************************

function suitableForPrinting() {
   
   var loc = location.toString();
   
   if(loc.indexOf('details.php') >= 0 || loc.indexOf('dtls.php') >= 0) {
      //------------------------------------------------------------------------
      // already external details, hide image and [PRNT]
      //------------------------------------------------------------------------
      var image = document.getElementById('details_image');
      var prnt = document.getElementById('prnt');
      
      image.style.display = 'none';
      prnt.style.display = 'none';
      
      return;
   }

   //---------------------------------------------------------------------------
   // open details in an external window
   //---------------------------------------------------------------------------
   array = loc.split('?');

   lastSlashIndex = array[0].lastIndexOf('/');
   var domain = array[0].substr(0, lastSlashIndex);
   var url = domain + '/sms/dtls.php?' + array[1] + '&print=1';
   window.open(url);
}

//******************************************************************************
