﻿// JScript 文件


function Login()
{
    var temp=encodeBase64(document.URL);
    //SetCookie("comeurl",temp);
    window.location.href = "http://www.3dsource.cn/login-" + temp + "-1.html";
}

function Logout()
{	
    var temp=encodeBase64(document.URL);
    //SetCookie("comeurl",temp);
    window.location.href = "http://www.3dsource.cn/logout.aspx?returns="+temp;
}

function UrlEncode(str){ 
  var ret=""; 
  var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; 
  var tt= "";

  for(var i=0;i<str.length;i++){ 
   var chr = str.charAt(i); 
    var c=str2asc(chr); 
    tt += chr+":"+c+"n"; 
    if(parseInt("0x"+c) > 0x7f){ 
      ret+="%"+c.slice(0,2)+"%"+c.slice(-2); 
    }else{ 
      if(chr==" ") 
        ret+="+"; 
      else if(strSpecial.indexOf(chr)!=-1) 
        ret+="%"+c.toString(16); 
      else 
        ret+=chr; 
    } 
  } 
  return ret; 
} 

function UrlDecode(str){ 
  var ret=""; 
  for(var i=0;i<str.length;i++){ 
   var chr = str.charAt(i); 
    if(chr == "+"){ 
      ret+=" "; 
    }else if(chr=="%"){ 
     var asc = str.substring(i+1,i+3); 
     if(parseInt("0x"+asc)>0x7f){ 
      ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6))); 
      i+=5; 
     }else{ 
      ret+=asc2str(parseInt("0x"+asc)); 
      i+=2; 
     } 
    }else{ 
      ret+= chr; 
    } 
  } 
  return ret; 
} 

function GetCookie(Name) {
     var search = Name + "=";
     var returnvalue = "";
     if (document.cookie.length > 0) {
           offset = document.cookie.indexOf(search);
           if (offset != -1) {      
                 offset += search.length;
                 end = document.cookie.indexOf(";", offset);                        
                 if (end == -1)
                       end = document.cookie.length;
                 returnvalue=unescape(document.cookie.substring(offset,end));
           }
     }
     if(Name == 'activeUserName')
     {
        var uu8=decodeBase64(returnvalue);
        returnvalue = utf8to16(uu8);
     }
     return returnvalue;
}

function SetCookie(name,value){
     var argv=SetCookie.arguments;
     var argc=SetCookie.arguments.length;
     var expires=(2<argc)?argv[2]:null;
     var path=(3<argc)?argv[3]:null;
     //var domain=(4<argc)?argv[4]:null;
     var domain = ".3dsource.cn";
     var secure=(5<argc)?argv[5]:false;
     document.cookie=name+"="+escape(value)+((expires==null)?"":("; expires="+expires.toGMTString()))+((path==null)?"":("; path="+path))+((domain==null)?"":("; domain="+domain))+((secure==true)?"; secure":"");
}

function Search()
{
	var keyword =document.getElementById("keyword").value;
	keyword = encodeURIComponent(keyword);
	//alert(keyword);
	//SetCookie("keyword",keyword);	
	var rb =document.getElementsByName('radiobutton');
	if(rb[0].checked)
	{
		window.location.href = "http://www.3dsource.cn/searchpart.aspx?keyword="+keyword;
	}
	else if(rb[1].checked)
	{
		window.location.href = "http://www.3dsource.cn/searchcom.aspx?keyword="+keyword;
	}
	else
	{
		window.location.href = "http://www.3dsource.cn/searchresource.aspx?keyword="+keyword;
	}

}



function PageChange(changetype,total)
{
    var pageindex;
    pageindex=document.getElementById('txt_page').value;
    if(pageindex=='')
    {
	return;
    }
    if(pageindex>total)
    {
        document.getElementById('txt_page').value='';
        return;
    }
    if(changetype=='whitepaper')
    {
        window.location.href = "http://www.3dsource.cn/resource/white_paper_more-"+pageindex+".html";
    }
    else if(changetype=='research')
    {
        window.location.href = "http://www.3dsource.cn/resource/article_more-"+pageindex+".html";
    }
    else if(changetype='industry')
    {
        window.location.href = "http://www.3dsource.cn/resource/news_more-"+pageindex+".html";
    }
    
}



 var END_OF_INPUT = -1;

var base64Chars = new Array(
    'A','B','C','D','E','F','G','H',
    'I','J','K','L','M','N','O','P',
    'Q','R','S','T','U','V','W','X',
    'Y','Z','a','b','c','d','e','f',
    'g','h','i','j','k','l','m','n',
    'o','p','q','r','s','t','u','v',
    'w','x','y','z','0','1','2','3',
    '4','5','6','7','8','9','+','/'
);

var reverseBase64Chars = new Array();
for (var i=0; i < base64Chars.length; i++){
    reverseBase64Chars[base64Chars[i]] = i;
}

var base64Str;
var base64Count;
function setBase64Str(str){
    base64Str = str;
    base64Count = 0;
}
function readBase64(){   
    if (!base64Str) return END_OF_INPUT;
    if (base64Count >= base64Str.length) return END_OF_INPUT;
    var c = base64Str.charCodeAt(base64Count) & 0xff;
    base64Count++;
    return c;
}
function encodeBase64(str){
    setBase64Str(str);
    var result = '';
    var inBuffer = new Array(3);
    var lineCount = 0;
    var done = false;
    while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
        inBuffer[1] = readBase64();
        inBuffer[2] = readBase64();
        result += (base64Chars[ inBuffer[0] >> 2 ]);
        if (inBuffer[1] != END_OF_INPUT){
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
            if (inBuffer[2] != END_OF_INPUT){
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
                result += (base64Chars [inBuffer[2] & 0x3F]);
            } else {
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
                result += ('=');
                done = true;
            }
        } else {
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
            result += ('=');
            result += ('=');
            done = true;
        }
        lineCount += 4;
        if (lineCount >= 76){
            result += ('\n');
            lineCount = 0;
        }
    }
    return result;
}
function readReverseBase64(){  
    if (!base64Str) return END_OF_INPUT;
    while (true){     
        if (base64Count >= base64Str.length) return END_OF_INPUT;
        var nextCharacter = base64Str.charAt(base64Count);
        base64Count++;
        if (reverseBase64Chars[nextCharacter]){
            return reverseBase64Chars[nextCharacter];
        }
        if (nextCharacter == 'A') return 0;
    }
}

function ntos(n){
    n=n.toString(16);
    if (n.length == 1) n="0"+n;
    n="%"+n;
    return unescape(n);
}

function decodeBase64(str){
    setBase64Str(str);
    var result = "";
    var inBuffer = new Array(4);
    var done = false;
    while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
        && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
        inBuffer[2] = readReverseBase64();
        inBuffer[3] = readReverseBase64();
        result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
        if (inBuffer[2] != END_OF_INPUT){
            result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
            if (inBuffer[3] != END_OF_INPUT){
                result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));
            } else {
                done = true;
            }
        } else {
            done = true;
        }
    }
    return result;
}

var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
function toHex(n){
    var result = ''
    var start = true;
    for (var i=32; i>0;){
        i-=4;
        var digit = (n>>i) & 0xf;
        if (!start || digit != 0){
            start = false;
            result += digitArray[digit];
        }
    }
    return (result==''?'0':result);
}

function pad(str, len, pad){
    var result = str;
    for (var i=str.length; i<len; i++){
        result = pad + result;
    }
    return result;
}

function encodeHex(str){
    var result = "";
    for (var i=0; i<str.length; i++){
        result += pad(toHex(str.charCodeAt(i)&0xff),2,'0');
    }
    return result;
}

function decodeHex(str){
    str = str.replace(new RegExp("s/[^0-9a-zA-Z]//g"));
    var result = "";
    var nextchar = "";
    for (var i=0; i<str.length; i++){
        nextchar += str.charAt(i);
        if (nextchar.length == 2){
            result += ntos(eval('0x'+nextchar));
            nextchar = "";
        }
    }
    return result;
   
}

function utf8to16(str) {
    var out, i, len, c;
    var char2, char3;

    out = "";
    len = str.length;
    i = 0;
    while(i < len) {
 c = str.charCodeAt(i++);
 switch(c >> 4)
 {
   case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
     // 0xxxxxxx
     out += str.charAt(i-1);
     break;
   case 12: case 13:
     // 110x xxxx   10xx xxxx
     char2 = str.charCodeAt(i++);
     out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
     break;
   case 14:
     // 1110 xxxx  10xx xxxx  10xx xxxx
     char2 = str.charCodeAt(i++);
     char3 = str.charCodeAt(i++);
     out += String.fromCharCode(((c & 0x0F) << 12) |
        ((char2 & 0x3F) << 6) |
        ((char3 & 0x3F) << 0));
     break;
 }
    }

    return out;
}


function gosearch()
{
	var keyword =document.getElementById("keyword").value;
//	if(keyword.length==0) 
//	{
//	  alert('搜索关键字不能为空!');
//	  return false;
//	}
	keyword = encodeURIComponent(keyword);
	var rb =document.getElementsByName('xz');
	if(rb[0].checked)
	{
		window.location.href = "http://www.3dsource.cn/searchall.aspx?keyword="+keyword;
	}
	else if(rb[1].checked)
	{
		window.location.href = "http://www.3dsource.cn/searchspace.aspx?keyword="+keyword;
	}
	else if(rb[2].checked)
	{
		window.location.href = "http://www.3dsource.cn/search3d.aspx?keyword="+keyword;
	}
	else if(rb[3].checked)
	{
		window.location.href = "http://www.3dsource.cn/search2d.aspx?keyword="+keyword;
	}
	else if(rb[4].checked)
	{
		window.location.href = "http://www.3dsource.cn/searchdianzi.aspx?keyword="+keyword;
	}
	else
	{
		window.location.href = "http://www.3dsource.cn/searchqita.aspx?keyword="+keyword;
	}

}


function showhead()
{
var userName = GetCookie("activeUserName");
var ismanager = GetCookie("iscommanager");
var newhtml="";
if (userName && userName != "Guest")
{
    newhtml="欢迎  "+UrlDecode(userName)+",  你有 <a href='http://www.3dsource.cn/myaccount/message_list.html'><span style='color:#FF5900; text-decoration:none;'>  "+UrlDecode(GetCookie("msg"))+"条站内消息</span></a>";
    document.getElementById('vip').innerHTML=newhtml;
    document.getElementById("logimg").style.display='none';
    document.getElementById("logoutimg").style.display='';
}
else
{
   newhtml="";
   document.getElementById('vip').innerHTML=newhtml;
   document.getElementById("logimg").style.display='';
   document.getElementById("logoutimg").style.display='none';
}
}

function regRegionShow()
{
var userName = GetCookie("activeUserName");
var ismanager = GetCookie("iscommanager");
var newhtml="";
if (userName && userName != "Guest")
{
    document.getElementById('regr').style.display='none';
    document.getElementById("regl").style.display='none';
    document.getElementById("regc").style.display='none';
}
}


function menuover(n)
{
  var menu1=document.getElementById('menu'+n);
  if(menu1!=null)
  {
    menu1.className='menu_'+n;
  }
}

function menuout(n)
{
  var menu1=document.getElementById('menu'+n);
  if(menu1!=null)
  {
    menu1.className='menu'+n;
  }
}


function allsearch(obj)
{
	var keyword = obj.value;
	if(keyword.length==0) 
	{
	  alert('搜索关键字不能为空!');
	}
	else
	{
	keyword = encodeURIComponent(keyword);
	window.location.href = "http://www.3dsource.cn/searchall.aspx?keyword="+keyword;
	}
}



function fireFoxHandler(evt){
if(evt.keyCode==13){
      var fireOnThis = document.getElementById("Masterhead1_imgbtnSearch");
      if (document.createEvent)
      {
        var evObj = document.createEvent('MouseEvents');
        evObj.initEvent( 'click', true, false );
        fireOnThis.dispatchEvent(evObj);
      }
      else if (document.createEventObject)
      {
           fireOnThis.fireEvent('onclick');
      }
}
else
{
  return false;
}
}


var addListener = false;
 
 
function togosearch()
{
if(document.addEventListener){//如果是Firefox
if(!addListener)
{
document.getElementById("keyword").addEventListener("keypress",fireFoxHandler, true);
addListener = true;
}
}
else{
if(event.keyCode==13){
          event.keyCode=9;
          event.returnValue=false;
     	  document.getElementById("Masterhead1_imgbtnSearch").click();
}
else
{
  return false;
}
}
}

function togosearchPart()
{
if(event.keyCode==13) 
     {
          event.keyCode=9;
          event.returnValue=false;
     	  gosearchPart();
}
else
{
  return false;
}
}

function gosearchPart()
{
	var keyword =document.getElementById("txtSearch").value;
	keyword = encodeURIComponent(keyword);
	window.location.href = "http://www.3dsource.cn/searchpart.aspx?keyword="+keyword;
}

function partSearchTag(obj)
{
	var keyword = obj;
	keyword = encodeURIComponent(keyword);
	window.location.href = "http://www.3dsource.cn/searchpart.aspx?keyword="+keyword;
}

function showPartKeyword()
{
  var myurl=document.URL;
  if(myurl.indexOf("keyword")!=-1)
  {
    var keys=myurl.substring(myurl.indexOf("keyword")+8,myurl.length)
    document.getElementById("txtSearch").value=decodeURIComponent(keys);
  }
}
