// Detect Client Browser type
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
jsVersion = 1.1;
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i) {
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      	} else {
			flashVer = -1;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	// Can't detect in all other cases
	else {
		
		flashVer = -1;
	}
	return flashVer;
} 
// If called with no parameters this function returns a floating point value 
// which should be the version of the Flash Player or 0.0 
// ex: Flash Player 7r14 returns 7.14
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) {
	//alert("DetectFlashVer(" + reqMajorVer + "," + reqMinorVer + "," + reqRevision + ")");
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
   	// loop backwards through the versions until we find the newest version	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			versionMajor      = versionArray[0];
			versionMinor      = versionArray[1];
			versionRevision   = versionArray[2];
			
			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
				return true;
			} else {
				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
			}
		}
	}	
	return (reqVer ? false : 0.0);
}

function setFlashWidth(val){
	movie = document.getElementById("pageflip");
	movie.width = val;
	alert(movie.width);
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

var minWidth = 800;
var minHeight = 600;
var widthMode = "full";
var heightMode = "full";


function sortFlashSize(){
	isIE = (!document.layers);
	if (isIE){
		var windowWidth = document.body.clientWidth;
		var windowHeight = document.body.clientHeight;
	}else{
		var windowWidth = window.innerWidth;
		var windowHeight = window.innerHeight;
	}

	var flashContainer = MM_findObj("flashcontainer");

	//WIDTH
	if (windowWidth >  minWidth && widthMode == "fixed"){
		flashContainer.style.width = "100%";
		widthMode = "full";
	}else if (windowWidth < minWidth && widthMode == "full"){
		flashContainer.style.width = minWidth;
		widthMode = "fixed";
	}

	//HEIGHT
	if (windowHeight >  minHeight && heightMode == "fixed"){
		flashContainer.style.height = "100%";
		heightMode = "full";
	}else if (windowHeight < minHeight && heightMode == "full"){
		flashContainer.style.height = minHeight;
		heightMode = "fixed";
	}

}

function initwindow() {
  window.moveTo(0,0); 
  window.resizeTo(screen.availWidth, screen.availHeight);
}

function getLocation() {
	return location.href.toString();
}

function getParameter(queryString, parameterName) {
	// Add "=" to the parameter name (i.e. parameterName=value)
	var parameterName = parameterName + "=";
	if(queryString.length>0) {
		// Find the beginning of the string
		begin = queryString.indexOf(parameterName);
		// If the parameter name is not found, skip it, otherwise return the value
		if(begin!=-1) {
			// Add the length (integer) to the beginning
			begin += parameterName.length;
			// Multiple parameters are separated by the "&" sign
			end = queryString.indexOf("&", begin);
			if(end==-1) {
				end = queryString.length;
			}
			// Return the string
			return unescape(queryString.substring(begin, end));
		}
		// Return "null" if no parameter has been found
		return null;
	}
}

function setAnchor(str) {
	//alert("setAnchor("+str+")");
	//window.location.hash
	var anchor = location.hash;
	if(anchor==null || anchor!=str)
		location.hash = str;
}

function getAnchor() {
	return location.hash;
}

function getAnchor(str) {
	if(str && typeof(str)!='undefined') {
		var url = str;
	} else {
		var url = getLocation();
	}
	var anchor = null;
	if(url.match(/#(.+)/)) {
		anchor = url.replace(/([^#]+)#(.*)/, "$2");
	}
	return anchor;
}



/*
www.flashrelease.com
Freeware solution to IE activex restriction
*/

var MSG_EvenArgs = 'The %s function requires an even number of arguments.'
                 + '\nArguments should be in the form "atttributeName","attributeValue",...';
var MSG_SrcRequired = "The %s function requires that a movie src be passed in as one of the arguments.";

function AC_RunFlContentX() {
  AC_AddExtension(arguments, "movie", ".swf");
  AC_AddExtension(arguments, "src", ".swf");
  var codebase = AC_GetCodebase
                 (  "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="
                  , "8,0,0,0", arguments 
                 );
	
  AC_GenerateObj
  (  "AC_RunFlContentX()", true, "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
   , codebase
   , "http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
   , "application/x-shockwave-flash", arguments
  );	
}
function AC_AddExtension(args, paramName, extension) {
  var currArg, paramVal, queryStr, endStr;
  for (var i=0; i < args.length; i=i+2){
    currArg = args[i].toLowerCase();    
    if (currArg == paramName.toLowerCase() && args.length > i+1) {
      paramVal = args[i+1];
      queryStr = "";
      var indQueryStr = args[i+1].indexOf('?');
      if (indQueryStr != -1){
        paramVal = args[i+1].substring(0, indQueryStr);
        queryStr = args[i+1].substr(indQueryStr);
      }
      endStr = "";
      if (paramVal.length > extension.length)
        endStr = paramVal.substr(paramVal.length - extension.length);
      if (endStr.toLowerCase() != extension.toLowerCase()) {
        args[i+1] = paramVal + extension + queryStr;
      }
    }
  }
}
function AC_GetCodebase(baseURL, defaultVersion, args) {
  var codebase = baseURL + defaultVersion;
  for (var i=0; i < args.length; i=i+2) {
    currArg = args[i].toLowerCase();    
    if (currArg == "codebase" && args.length > i+1) {
      if (args[i+1].indexOf("http://") == 0) {
        codebase = args[i+1];
      }
      else {
        codebase = baseURL + args[i+1];
      }
    }
  }
	
  return codebase;	
}

function AC_checkArgs(args,callingFn) {
  var retVal = true;
  if (parseFloat(args.length/2) != parseInt(args.length/2)){
    alert(sprintf(MSG_EvenArgs,callingFn));
    retVal = false;
  }
  return retVal;
}
function AC_GenerateObj(callingFn, useXHTML, classid, codebase, pluginsPage, mimeType, args) {
  if (!AC_checkArgs(args,callingFn)) {
    return;
  }
  var tagStr = '';
  var currArg = '';
  var closer = (useXHTML) ? '/>' : '>';
  var srcFound = false;
  var embedStr = '<embed';
  var paramStr = '';
  var embedNameAttr = '';
  var objStr = '<object classid="' + classid + '" codebase="' + codebase + '"';
  for (var i=0; i < args.length; i=i+2) {
    currArg = args[i].toLowerCase();    
    if (currArg == "src") {
      if (callingFn.indexOf("RunSW") != -1){
        paramStr += '<param name="' + args[i] + '" value="' + args[i+1] + '"' + closer + '\n';
        embedStr += ' ' + args[i] + '="' + args[i+1] + '"';
        srcFound = true;
      } else if (!srcFound){
        paramStr += '<param name="movie" value="' + args[i+1] + '"' + closer + '\n'; 
        embedStr += ' ' + args[i] + '="' + args[i+1] + '"';
        srcFound = true;
      }
    } else if (currArg == "movie") {
      if (!srcFound) {
        paramStr += '<param name="' + args[i] + '" value="' + args[i+1] + '"' + closer + '\n'; 
        embedStr += ' src="' + args[i+1] + '"';
        srcFound = true;
      }
    } else if (  currArg == "width" 
              || currArg == "height" 
              || currArg == "align" 
              || currArg == "vspace" 
              || currArg == "hspace" 
              || currArg == "class" 
              || currArg == "title" 
              || currArg == "accesskey" 
              || currArg == "tabindex") {
      objStr += ' ' + args[i] + '="' + args[i+1] + '"';
      embedStr += ' ' + args[i] + '="' + args[i+1] + '"';
    } else if (currArg == "id") {
      objStr += ' ' + args[i] + '="' + args[i+1] + '"';
      if (embedNameAttr == "")
        embedNameAttr = ' name="' + args[i+1] + '"';
    } else if (currArg == "name") {
      objStr += ' ' + args[i] + '="' + args[i+1] + '"';
      embedNameAttr = ' ' + args[i] + '="' + args[i+1] + '"';
    } else if (currArg == "codebase") {
    } else {
      paramStr += '<param name="' + args[i] + '" value="' + args[i+1] + '"' + closer + '\n'; 
      embedStr += ' ' + args[i] + '="' + args[i+1] + '"';
    }
  }
  if (!srcFound) {
    alert(AC_sprintf(MSG_SrcRequired,callingFn));
    return;
  }
  if (embedNameAttr)
    embedStr += embedNameAttr;	
  if (pluginsPage)
    embedStr += ' pluginspage="' + pluginsPage + '"';
  if (mimeType)
    embedStr += ' type="' + mimeType + '"';
  objStr += '>\n';
  embedStr += '></embed>\n'; 
  tagStr = objStr + paramStr + embedStr + "</object>\n"; 
  document.write(tagStr);
}
