﻿var lastStyle = 1;

var normalCss_ = '/_css/size/textsize_normal.css';
var mediumCss_ = '/_css/size/textsize_medium.css';
var largeCss_ = '/_css/size/textsize_large.css';

var lastFilename_ = mediumCss_;

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = '; expires='+date.toGMTString();
	}
	else var expires = '';
	document.cookie = name+'='+value+expires+'; path=/';
}

function readCookie(name) {
	var nameEQ = name + '=';
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
    try
    {
	    createCookie(name,'',-1);
	}
	catch(ex)
	{
	    alert('Error Occured');
	}
}


function createjscssfile(filename, filetype){
 if (filetype=='js'){ //if filename is a external JavaScript file
  var fileref=document.createElement('script')
  fileref.setAttribute('type','text/javascript')
  fileref.setAttribute('src', filename)
 }
 else if (filetype=='css'){ //if filename is an external CSS file
  var fileref=document.createElement('link')
  fileref.setAttribute('rel', 'stylesheet')
  fileref.setAttribute('type', 'text/css')
  fileref.setAttribute('href', filename)
 }
 return fileref
}

function replaceCssFile(oldfilename, newfilename, filetype){
 var targetelement=(filetype=='js')? 'script' : (filetype=='css')? 'link' : 'none' //determine element type to create nodelist using
 var targetattr=(filetype=='js')? 'src' : (filetype=='css')? 'href' : 'none' //determine corresponding attribute to test for
 var allsuspects=document.getElementsByTagName(targetelement)
 for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
  if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(oldfilename)!=-1){
   var newelement=createjscssfile(newfilename, filetype)
   allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i])
  }
 }
}


function changeTextSize(onload,value)
{
    try
    {

       //  READ Value from cookie to set the page on load;
       var fromCookie = readCookie('textSize');

       if (value == null || fromCookie.toString() == "NaN") {
           value = parseInt(fromCookie);

           if (value.toString() == "NaN") {
               value = lastStyle;
           }

           if (value.toString() == "NaN" || value == null) {
               value = 1;
           }
       }
      
        // Create new value to be used for the site text size;
       var newFilename = '';
       if (value != NaN) {
           switch (value) {
               case 0: { newFilename = normalCss_; break; }
               case 1: { newFilename = mediumCss_; break; }
               case 2: { newFilename = largeCss_; break; }
           }
       }

       if (onload && newFilename.length > 0 && lastFilename_ != newFilename)
        {
            oldFilename = mediumCss_;
            replaceCssFile(lastFilename_, newFilename, 'css'); //Replace all occurences 'oldstyle.css' with 'newstyle.css'
        }
        else if(!onload && newFilename.length > 0 && lastFilename_ != newFilename)
        {
            replaceCssFile(lastFilename_, newFilename, 'css'); //Replace all occurences 'oldstyle.css' with 'newstyle.css'
        }
                                  
        createCookie('textSize', value, 0);        
        lastStyle = value;
        lastFilename_ = newFilename;
    }
    catch(e)
    {
        alert(e.message);
    }   
        
}

function setTextSize(value)
{
    changeTextSize(false,value);
}
