function $(val){
	return document.getElementById(val);	
}
function findPos(obj) {
	var pos = new Array();
	if (obj.offsetParent) {
		pos[0] = obj.offsetLeft;
		pos[1] = obj.offsetTop;
		while (obj = obj.offsetParent) {
			pos[0] += obj.offsetLeft;
			pos[1] += obj.offsetTop;
		}
	}
	return pos;
}
function GetXmlHttpOBJ(){ 
	var objXMLHttp=null;
	if (window.XMLHttpRequest) objXMLHttp=new XMLHttpRequest();
	else if (window.ActiveXObject)	objXMLHttp=new ActiveXObject('Microsoft.XMLHTTP');
	return objXMLHttp;
}
function setCookie(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 getCookie(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 deleteCookie(name) {
	setCookie(name,"",-1);
}
function ElmWidth(obj){
	if(obj.clientWidth) return obj.clientWidth;
	else return obj.offsetWidth;
}
function ElmHeight(obj){
	if(obj.clientHeight) return obj.clientHeight;
	else return obj.offsetHeight;
}
function setOpacity(Obj,opacity) {
	Obj.style.opacity = (opacity / 100);
	Obj.style.MozOpacity = (opacity / 100);
	Obj.style.KhtmlOpacity = (opacity / 100);
	Obj.style.filter = "alpha(opacity=" + opacity + ")";
}
function getavailHeight() {
  if( typeof( window.innerHeight ) == 'number' )	var y = window.innerHeight;
  else if( document.documentElement && document.documentElement.clientHeight) var y = document.documentElement.clientHeight;
  return y;
}
function getavailWidth() {
  if( typeof( window.innerWidth ) == 'number' )	var x = window.innerWidth;
  else if( document.documentElement && document.documentElement.clientWidth) var x = document.documentElement.clientWidth;
  return x;
}
function getscrollTop(){
   var h = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;          
   return h ? h : 0;
}
function getscrollLeft(){
   var l = window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft;          
   return l ? l : 0;
}
var mposx = 0;
var mposy = 0;
function mpos(e){
	if(!e) var e = window.event;
	if(e.pageX || e.pageY){
		mposx = e.pageX;
		mposy = e.pageY;
	}else if(e.clientX || e.clientY){
		mposx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		mposy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
}
function stops(e){
	if (!e) var e = window.event
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return false;	
}
function popupLogin(obj){
	var pos = findPos(obj);
	dragPosx = dragPosy = 0;
	pLogin(pos[0],(pos[1]+20),0);		
}
function pLogin(val,val2,val3){
	$("iFrame").className = $("iframeLoading").className = "loginclass";
	$("dragPart").style.position = "absolute";
	$("dragPart").style.width = "340px";
	$("dragPart").style.height = "12px";
	$("dragPart").style.display = "block";	
	comeout('/us/template/popupLogin.php',430,140,val,val2,false,0);
	if(val3) $("loginForm").url.value += "#postComment";	
}
function selectedText(){
	if (document.getSelection)	var str = document.getSelection();
	else if (document.selection && document.selection.createRange)	var str = document.selection.createRange().text;
	return str;
}
function trim(str){ 
	while (str.substring(0,1) == ' '){ 
		str = str.substring(1, str.length); 
	} 
	while (str.substring(str.length-1, str.length) == ' '){ 
		str = str.substring(0,str.length-1); 
	} 
	return str; 
}
Array.prototype.in_array = function(p_val) {
	for(var i = 0, l = this.length; i < l; i++) {
		if(this[i] == p_val) {
			return true;
		}
	}
	return false;
}
if (!Array.prototype.forEach){
  Array.prototype.forEach = function(fun /*, thisp*/){
    var len = this.length >>> 0;
    if (typeof fun != "function")	throw new TypeError();
    var thisp = arguments[1];
    for (var i = 0; i < len; i++){
      if (i in this)	fun.call(thisp, this[i], i, this);
    }
  };
}
var group_x = new Array();
var ar_r = new Array();
function ww(obj,val){
	group_x = new Array();
	val = trim(val);
	ar_r = val.split(" ");
	switched(obj,0);
	return group_x;		
}
function ss(val){
	group_x = new Array();
	val = trim(val);
	ar_r = val.split(" ");
	if(val.substr(0,1)!="#"){
		switched(document.body,0);	
	}else if($(ar_r[0].substr(1))){
		if(ar_r.length>1) switched($(ar_r[0].substr(1)),1);
		else group_x.push($(ar_r[0].substr(1)));
	} 
	return group_x;	
}
function switched(obj,val){
	var text = ar_r[val];
	var val_head = text.substr(0,1);
	var val_text = text.substr(1);
	if(val_head==".")	findC(obj,val);
	else if(val_head=='#'){
		if(val==(ar_r.length-1))	group_x.push($(val_text));
		else switched($(val_text),val+1);
	}else if(val_head=='>')	findE(obj,val,false);
	else if(text)	findE(obj,val,true);
	else switched(obj,++val);
}
function findC(obj,val){
	var text = ar_r[val].substr(1);
	var i=0;
	var robj = obj.childNodes;
	var ok = 0;
	while(robj[i]){
		ok = 0;
		if(robj[i].className){
			var n = robj[i].className.split(" ");	
			var j = 0;
			while(n[j]){
				if(n[j]==text) ok = 1;
				j++;	
			}
		}			
//		var re = new RegExp(" "+text);
//		var re2 = new RegExp(text+" ");
//		if(robj[i].className == text || (robj[i].className && (robj[i].className.match(re) || robj[i].className.match(re2)))){
		if(ok){
			if(val==(ar_r.length-1))	group_x.push(robj[i]);
			else switched(robj[i],val+1);
		}
		switched(robj[i],val);
		i++;
	}	
}
function findE(obj,val,val2){
	if(val2) var text = ar_r[val].toUpperCase(); 
	else var text = ar_r[val].substr(1).toUpperCase();//>initial
	if(!text) switched(obj,++val);
	var n = /([a-z]+)\[([a-z]+)\=[\'\"]{1}([a-z0-9]+)[\'\"]{1}]/i;
	var m = n.exec(text);
	var n = /([a-z]+)\[([a-z]+)]/i;
	var b = n.exec(text);
	var n = /([a-z]+)\:first-child/i;
	var a = n.exec(text);
	var i=0;
	var k=0;
	var robj = obj.childNodes;
	while(robj[i]){
		if(m){
			if(robj[i].nodeName == m[1] && eval("robj["+i+"]."+m[2].toLowerCase())==m[3].toLowerCase()){
				if(val==(ar_r.length-1))	group_x.push(robj[i]);
				else switched(robj[i],val+1);
			}			
		}else if(b){
			if(robj[i].nodeName == b[1] && eval("robj["+i+"]."+b[2].toLowerCase())){
				if(val==(ar_r.length-1))	group_x.push(robj[i]);
				else switched(robj[i],val+1);
			}
		}else if(a){
			if(robj[i].nodeName == a[1] && k==0){
				if(val==(ar_r.length-1))	group_x.push(robj[i]);
				else switched(robj[i],val+1);				
			}
		}else{
			if(robj[i].nodeName == text){
				if(val==(ar_r.length-1))	group_x.push(robj[i]);
				else switched(robj[i],val+1);
			}
		}
		if(robj[i].nodeType==1) k++;	
		if(val2) switched(robj[i],val);
		i++;
	}	
}
function popup(obj, w, h){
	var pop_win = window.open(obj.href,'pop_win','width='+w+', height='+h+', scrollbars=yes');
	pop_win.focus();
	return false;
}
function pop(url, w, h){
	var pop_win = window.open(url,'pop_win','width='+w+', height='+h+', scrollbars=yes');
	pop_win.focus();
	//return false;
}



//slide
function slide(obj,duration,space,limit,automoving){
	this.Zobj = obj;
	this.num = 0;
	this.target;
	this.point; // left=-1 right = 1
	this.space = space;
	this.autos = automoving;;
	this.limit = limit;
	this.distance;
	this.interval = 7000;
	this.duration = duration*1000;
	this.frequency = 50;
	this.freq = parseInt(this.duration/this.frequency);
	this.svs = 1;
	this.move = s_move;
	this.goto = s_goto;
	this.horizontal = s_horizontal;
	this.direct = adonde;
	this.automatic = s_automatic;
	this.start = s_start;
	this.clear = s_clear;
	this.moving = false;
	this.di = 1;
}
function s_move(val){
	this.clear();
	if(val==1){ //right				
		if(this.num>=this.limit){
			this.num=0;
			this.Zobj.style.left = 0;		
		}
	}else{	// left		
		if(this.num<=0){
			this.num=this.limit;
			this.Zobj.style.left = -this.space*this.num+"px";				
		}
	}
	this.target = -1*this.space*(this.num+val);
	this.point = val;
	this.svs = 1;
	this.distance = Math.abs(this.target + this.num*this.space);
	this.moving = true;
	this.horizontal();
	var m = (val==1)?++this.num : --this.num;
	return this.num;
}
function s_goto(val){
	this.clear();
	this.target = -1*this.space*val;
	this.distance = Math.abs(this.target + this.num*this.space);
	this.point = (this.num>val && this.num<this.limit)?-1:1;
	if(this.num==this.limit) this.Zobj.style.left = 0;
	this.svs = 1;
	this.moving = true;
	this.horizontal();
	this.num = val;			
}
function adonde(val){
	this.clear();
	this.Zobj.style.left = -1*this.space*val+"px"; 
	this.num = val;		
}
function s_horizontal(){
	var amount = -this.distance/2/this.freq*Math.PI*Math.sin(Math.PI*this.svs/this.freq)*this.point;
	this.Zobj.style.left = parseInt(this.Zobj.style.left) + amount + "px";	
	var thisObj = this;
	var sss = window.setTimeout(function(){thisObj.horizontal();},this.frequency,this);
	if(this.svs>=(this.freq-1)){
		clearTimeout(sss);
		this.Zobj.style.left = this.target+"px"; 
		this.automatic();
		this.moving = false;
	}
	this.svs++;
}	
function s_automatic(){
	if(this.autos){ 
		var thisObj = this;
		if(this.num==0 || (this.di==1 && this.num<(this.limit-1))) var val = 1;
		else var val = -1;
		this.di = val
		this.autos = window.setTimeout(function(){thisObj.move(val);},this.interval,this);			
	}	
}
function s_clear(){
	if(this.autos) clearTimeout(this.autos);
//	this.autos = false;
}
function s_start(){	
	this.Zobj.style.left = 0;
	this.automatic();
}

//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 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;
	try {
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			version = "WIN 6,0,21,0";
			axo.AllowScriptAccess = "always";
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

function GetSwfVer(){
	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;
		}
	}
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

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];

		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;
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)	return data[i].identity;
			}else if (dataProp)	return data[i].identity;
		}
	},
	dataBrowser: [
		{string: navigator.userAgent,subString: "Chrome",identity: "Chrome"},
		{string: navigator.vendor,subString: "Apple",identity: "Safari"},
		{prop: window.opera,identity: "Opera"},
		{string: navigator.userAgent,subString: "Firefox",identity: "Firefox"},
		{string: navigator.userAgent,subString: "MSIE",identity: "Explorer"},
		{string: navigator.userAgent,subString: "Gecko",identity: "Mozilla"}
	],
	dataOS : [
		{string: navigator.platform,subString: "Win",identity: "Windows"},
		{string: navigator.platform,subString: "Mac",identity: "Mac"},
		{string: navigator.userAgent,subString: "iPhone",identity: "iPhone/iPod"},
		{string: navigator.platform,subString: "Linux",identity: "Linux"}
	]
};
//slide
function slide(obj,duration,space,limit,automoving){
	this.Zobj = obj;
	this.num = 0;
	this.target;
	this.point; // left=-1 right = 1
	this.space = space;
	this.autos = automoving;;
	this.limit = limit;
	this.distance;
	this.interval = 7000;
	this.duration = duration*1000;
	this.frequency = 50;
	this.freq = parseInt(this.duration/this.frequency);
	this.svs = 1;
	this.move = s_move;
	this.goto = s_goto;
	this.horizontal = s_horizontal;
	this.direct = adonde;
	this.automatic = s_automatic;
	this.start = s_start;
	this.clear = s_clear;
	this.moving = false;
	this.di = 1;
}
function s_move(val){
	this.clear();
	if(val==1){ //right				
		if(this.num>=this.limit){
			this.num=0;
			this.Zobj.style.left = 0;		
		}
	}else{	// left		
		if(this.num<=0){
			this.num=this.limit;
			this.Zobj.style.left = -this.space*this.num+"px";				
		}
	}
	this.target = -1*this.space*(this.num+val);
	this.point = val;
	this.svs = 1;
	this.distance = Math.abs(this.target + this.num*this.space);
	this.moving = true;
	this.horizontal();
	var m = (val==1)?++this.num : --this.num;
	return this.num;
}
function s_goto(val){
	this.clear();
	this.target = -1*this.space*val;
	this.distance = Math.abs(this.target + this.num*this.space);
	this.point = (this.num>val && this.num<this.limit)?-1:1;
	if(this.num==this.limit) this.Zobj.style.left = 0;
	this.svs = 1;
	this.moving = true;
	this.horizontal();
	this.num = val;			
}
function adonde(val){
	this.clear();
	this.Zobj.style.left = -1*this.space*val+"px"; 
	this.num = val;		
}
function s_horizontal(){
	var amount = -this.distance/2/this.freq*Math.PI*Math.sin(Math.PI*this.svs/this.freq)*this.point;
	this.Zobj.style.left = parseInt(this.Zobj.style.left) + amount + "px";	
	var thisObj = this;
	var sss = window.setTimeout(function(){thisObj.horizontal();},this.frequency,this);
	if(this.svs>=(this.freq-1)){
		clearTimeout(sss);
		this.Zobj.style.left = this.target+"px"; 
		this.automatic();
		this.moving = false;
	}
	this.svs++;
}	
function s_automatic(){
	if(this.autos){ 
		var thisObj = this;
		if(this.num==0 || (this.di==1 && this.num<(this.limit-1))) var val = 1;
		else var val = -1;
		this.di = val
		this.autos = window.setTimeout(function(){thisObj.move(val);},this.interval,this);			
	}	
}
function s_clear(){
	if(this.autos) clearTimeout(this.autos);
//	this.autos = false;
}
function s_start(){	
	this.Zobj.style.left = 0;
	this.automatic();
}
