
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;


// Visual basic helper required to detect Flash Player ActiveX control version information
if(isIE&&isWin){
	document.open();
	document.write('<scr'+'ipt type="text/vbscript">'+'\n');
	document.write('Function VBGetSwfVer(i)'+'\n');
	document.write('on error resume next'+'\n');
	document.write('Dim swControl, swVersion'+'\n');
	document.write('swVersion = 0'+'\n');
	document.write('set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))'+'\n');
	document.write('if (IsObject(swControl)) then'+'\n');
	document.write('swVersion = swControl.GetVariable("$version")'+'\n');
	document.write('end if'+'\n');
	document.write('VBGetSwfVer = swVersion'+'\n');
	document.write('End Function'+'\n');
	document.write('<\/scr' + 'ipt\>'+'\n');
	document.close();
}



// Detect Client Browser type
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i){
	var flashVer;

// 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;
			var descArray=flashDescription.split(" ");
			var tempArrayMajor=descArray[2].split(".");
			var versionMajor=tempArrayMajor[0];
			var versionMinor=tempArrayMajor[1];
			if(descArray[3]!=""){
				var tempArrayMinor=descArray[3].split("r");
			} else {
				var tempArrayMinor=descArray[4].split("r");
			}
			var 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;
}


// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer,reqMinorVer,reqRevision){

	var 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){
			var versionStr=VBGetSwfVer(i);
		}else{
			var versionStr=JSGetSwfVer(i);
		}
		if(versionStr==-1){
			return false;
		}else if(versionStr!=0){
			if(isIE&&isWin&&!isOpera){
				var tempArray=versionStr.split(" ");
				var tempString=tempArray[1];
				var versionArray=tempString .split(",");
			} else {
				var versionArray = versionStr.split(".");
			}
			var versionMajor=versionArray[0];
			var versionMinor=versionArray[1];
			var versionRevision=versionArray[2];
			
			versionString=versionMajor+"."+versionRevision;   // 7.0r24 == 7.24
			var versionNum=parseFloat(versionString);
// is the major.revision >= requested major.revision AND the minor version >= requested minor
			if(versionMajor==reqMajorVer){
				if(versionMinor==reqMinorVer){
					return (versionRevision>=reqRevision);
				}else{
					return (versionMinor>reqMinorVer);
				}
			}else{
				return (versionMajor>reqMajorVer);
			}
		}
	}
}








function attachSWF(o,nodeid,lazyloadable){

	var requiredMajorVersion=(o.requiredMajorVersion)?o.requiredMajorVersion:7;
	var requiredMinorVersion=(o.requiredMinorVersion)?o.requiredMinorVersion:0;
	var requiredRevision=(o.requiredRevision)?o.requiredRevision:0;

	var hasProductInstall=DetectFlashVer(6,0,65);
	var hasRequiredVersion=DetectFlashVer(requiredMajorVersion,requiredMinorVersion,requiredRevision);

	var MMredirectURL=window.location;

	if(hasProductInstall){
		var codes='';

		if(hasRequiredVersion){
			var swfA = o.swf;
			var swfP = o.swf;
		}else{
			if(o.swfInstall){
				document.title=document.title.slice(0,47)+" - Flash Player Installation";
				var MMdoctitle=document.title;

				var swfA=o.swfInstall+'?MMredirectURL='+MMredirectURL+'&MMplayerType=ActiveX&MMdoctitle='+MMdoctitle;
				var swfP=o.swfInstall+'?MMredirectURL='+MMredirectURL+'&MMplayerType=PlugIn&MMdoctitle='+MMdoctitle;
			}else if(o.substitute){
				location.replace(o.substitute);
				return
			}else{
				if(lazyloadable)lazyload();
				return
			}
		}

		codes+='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="'+o.name+'" width="'+o.width+'" height="'+o.height+'" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">';
		codes+='<param name="movie" value="'+swfA+'" />';
		codes+='<param name="quality" value="'+o.quality+'" />';
		codes+='<param name="bgcolor" value="'+o.bgcolor+'" />';
		codes+='<param name="flashvars" value="'+o.flashvars+'" />';
		codes+='<param name="loop" value="'+o.loop+'" />';
		codes+='<param name="menu" value="'+o.menu+'" />';
		codes+='<param name="wmode" value="'+o.wmode+'" />';
		codes+='<embed src="'+swfP+'" quality="'+o.quality+'" bgcolor="'+o.bgcolor+'" width="'+o.width+'" height="'+o.height+'" name="'+o.name+'" flashvars="'+o.flashvars+'" wmode="'+o.wmode+'" loop="'+o.loop+'" menu="'+o.menu+'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">';
		codes+='<\/embed>';
		codes+='<\/object>';


		var node=document.getElementById(nodeid)
		node.innerHTML=codes
	}else if(o.substitute){
		location.replace(o.substitute);
	}else{
		if(lazyloadable)lazyload();
	}


}


///////////////////////////////////////////////////////////////

function initHash(base){


}

function getHash(){
	if(location.href.indexOf("#")!=-1){
		var str=location.href.replace(/.*#/,"");
		return str;
	}
	return null;
}

function getSearch(){
	if(location.search){
		var str=location.search.replace(/.*\?/,"");
		var list=str.split("&")
		var o={}
		var len=list.length
		var pair;
		for(var i=0;i<len;i++){
			pair=list[i].split("=")
			if(pair[0])o[pair[0]]=pair[1]
		}
		return o;
	}
	return {};
}

function getCookie(){
	if(document.cookie){
		var str=document.cookie

		var list=str.split(";")
		var o={}
		var len=list.length
		var pair;
		for(var i=0;i<len;i++){
			pair=list[i].split("=")
			if(pair[0])o[pair[0]]=pair[1]
		}
		return o;
	}
	return {};
}

function joinSearch(o){
	var s="";
	for(var i in o){
		if(i)s+=i+"="+o[i]+"&";
	}
	return s.substring(0,s.length-1);
}




///////////////////////////////////////////////////////////////
//mootools based

function lazyload(){
$$('img').each(function(el){
el.setProperty('src',el.getProperties('name').name );
});
}



///////////////////////////////////////////////////////////////

getDOMString=function(id){
    if(!id)return "";
	var root = document.getElementById(id)
	if(!root)return "";
    return escape(getString(this.parseElement(root)));
};

parseElement=function(elem){
	var o={};
	var childList=[];
	var attributes=[];

	if(elem.nodeType==7){
		return;
	}

	if(elem.nodeType==3||elem.nodeType==4){
		var bool=elem.nodeValue.match(/[^\x00-\x20]/);
		if (bool==null)return;     // ignore white spaces
		return elem.nodeValue;
	}

	var attr;
	if(elem.attributes&&elem.attributes.length){
		for(var i=0;i<elem.attributes.length;i++){
			attr=elem.attributes[i]
			var key=attr.nodeName;
			if(typeof(key)!="string")continue;
			if(key=="contentEditable")continue;
			var val=attr.nodeValue;
			if(!val)continue;
			attributes.push({name:key,value:val})
		}
	}

	var node;
	if(elem.childNodes&&elem.childNodes.length){
		for(var i=0;i<elem.childNodes.length;i++){
			node=elem.childNodes[i]
			if(node.nodeType==3||node.nodeType==4){
				childList.push(node.nodeValue);
			}else{
				var c=this.parseElement(node)
				if(c)childList.push(c);
			}
		}
	}

	o.name=elem.nodeName.toLowerCase();
	o.attributes=attributes;
	o.child=childList;

    return o;
};

getString=function(o){

	var str="";

	if(typeof(o)!="string"){
		str='<'+o.name;
		if(o.attributes.length){
			var len=o.attributes.length;
			var attr
			for(var i=0;i<len;i++){
				str+=" ";
				attr=o.attributes[i]
				str+=attr.name+'="'+attr.value+'"';
			}
		}
		str+='>';

		if(o.child.length){
//			str+='\n';
			var len=o.child.length;
			for(var i=0;i<len;i++){
				str+=this.getString(o.child[i]);
			}
		}

		str+='</'+o.name+'>'//+'\n';
	}else{
		str=o;
	}

	return str;
}




