//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2008 Adobe Systems Incorporated.  All rights reserved.
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;
function ControlVersion()
{
	var version;
	var axo;
	var e;
	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}
	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";
			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";
			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	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;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// 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;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }
  document.write(str);
}
function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    
    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 10;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Revision of Flash required
var requiredRevision = 2;
// -----------------------------------------------------------------------------





var tabs = new Array;
var subs = new Array;

var currentPageName = "";

var siteStructure = new Array (new Array ("ÃËÀÂÍÀß ÑÒÐÀÍÈÖÀ", "index", null),
								new Array ("ÏÐÎÄÓÊÒÛ È ÖÅÍÛ", "products", null),
								new Array ("Î ÍÀÑ", "about", null),
								new Array ("ÃÄÅ ÊÓÏÈÒÜ", "wheretobuy", null),
								new Array ("ÑÊÀ×ÀÒÜ", "downloads", null));


function setCookie (name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie (name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf (search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf (";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape (cookie.substring (offset, end));
		}
	}
	return (setStr);
}


document.getElementsByClassName = function (cl) {
	var retnode = new Array;
	var myclass = new RegExp ('\\b' + cl + '\\b');
	var elem = this.getElementsByTagName ('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test (classes)) retnode.push (elem[i]);
	}
	return retnode; // âîçâðàùàåò ìàññèâ îáúåêòîâ
}


function createTabLine () {
	var subPages = document.getElementsByClassName ("subpage");
	if (subPages.length == 0) return;
	var titles = document.getElementsByClassName ("hiddentitle");
	if (titles.length == 0) return;
	var tabDIV = document.getElementById ("tabs");
	var titleNames = new Array;
	var sideString = "     ";
	var commonStringLength = 0;
	var maxCommonStringLength = 100;
	var cuttedArray = new Array;
	for (var i = 0; i < titles.length; i++) {
		titleNames[i] = titles[i].firstChild.nodeValue;
		commonStringLength += titleNames[i].length + sideString.length * 2;
	}
	if (commonStringLength > maxCommonStringLength) {
		var linesNumber = Math.ceil (commonStringLength / maxCommonStringLength);
		var singleLineLength = commonStringLength / linesNumber;
		var subArray = new Array;
		var j = 0;
		for (var i = 0; i < titleNames.length; i++) {
			if (j + titleNames[i].length / 2 + sideString.length > singleLineLength) {
				cuttedArray.push (subArray);
				subArray = new Array;
				j = 0;
			}
			else j += titleNames[i].length + sideString.length * 2;
			subArray.push (titleNames[i]);
		}
		cuttedArray.push (subArray); // add last line
	}
	else cuttedArray [0] = titleNames;

	var j = 0;
	for (var line = 0; line < cuttedArray.length; line++) {
		var table = document.createElement ("table");
		var tbody = document.createElement ("tbody");
		var tr = document.createElement ("tr");
		table.className = "grey";
		for (var i = 0; i < cuttedArray[line].length; i++) {
			if (cuttedArray[line][i] != "") {
				var td = document.createElement ("td");
				var newLink = document.createElement ("a");
				var newText = document.createTextNode (cuttedArray[line][i]);
				newLink.href = "javascript:switchTab(" + j + ")";
				newLink.className = "tab";
				newLink.appendChild (newText);
				td.appendChild (newLink);
				tr.appendChild (td);
				tabs.push (newLink);
				subs.push (subPages[j]);
			}
			j++;
		}
		tbody.appendChild (tr);
		table.appendChild (tbody);
		tabDIV.appendChild (table);
	}
}

function switchTab (num) {
	currentTab = num;
	setCookie ("facadeTile-" + currentPageName + "-Tab", currentTab);
	for (var i = 0; i < tabs.length; i++) {
		tabs[i].className = (i == num ? "tabcurrent" : "tab");
		subs[i].className = (i == num ? "subpagecurrent" : "subpage");
	}
}


function createSideTable (data) {
	
	function createSideLine (textNode, linkName, nameID) {
    	var tr = document.createElement ("tr");
	    var td = document.createElement ("td");
    	var newLink = document.createElement ("a");
    	var newText = document.createTextNode (textNode);
		var loc = location.href;
		if (loc == "http://www.facadetile.ru/") loc = "index.html";
		newLink.href = linkName;
		newLink.className = (loc.indexOf (linkName) > -1 ? "sidemenucurrent" : "sidemenu");
		newLink.id = nameID;
		newLink.appendChild (newText);
	    td.appendChild (newLink);
    	tr.appendChild (td);
		return tr;
	}
	
	var table = document.getElementById ("sidemenu");
	var tbody = document.createElement ("tbody");

	tbody.appendChild (createSideLine ("", "#", "sidestart"));
	
	for (var i = 0; i < data.length; i++) {
	    tbody.appendChild (createSideLine (data[i][0], data[i][1] + ".html"));
	}

	tbody.appendChild (createSideLine ("", "#", "sideend"));

	table.replaceChild (tbody, table.lastChild);
	return table;
}

function fillPage () {
	
	var sidetable = createSideTable (siteStructure);
	
	createTabLine ();

	for (var i = 0; i < siteStructure.length; i++) {
	    if (location.href.indexOf (siteStructure[i][1]) > -1) {
			currentPageName = siteStructure[i][1];
			break;
		}
	}
	var currentTab = getCookie ("facadeTile-" + currentPageName + "-Tab");
	switchTab (currentTab ? currentTab : 0);	
}
