/*  Water JavaScript Application Pack, Version 0.1
 *  
 *	Last Modify: 2007-4-13
/*--------------------------------------------------------------------------*/

//启动项
//window.attachEvent('onload',startup);

function startup(){
	a.external();
}

//浏览器判断
var sUserAgent = navigator.userAgent;
var isOpera = sUserAgent.indexOf('Opera') > -1;
var isIE = sUserAgent.indexOf('compatible') > -1 && sUserAgent.indexOf('MSIE 6.0') > -1 && !isOpera;


//链接控制，更新日期：06-12-20，开始
var a ={
	anchors: document.getElementsByTagName("a"),
	
	external:function(){ 
		for (var i=0; i<this.anchors.length; i++){ 
			var anchor_one = this.anchors[i]; 
			if (anchor_one.getAttribute("href") && anchor_one.getAttribute("rel") == "external") anchor_one.target = "_blank"; 
		} 
	}
}
//链接控制，更新日期：06-12-20，结束

//通用标签切换脚本，更新日期：06-12-20，开始
function FrameGroup(groupName,groupList){
	this.groupName = groupName;
	this.groupList = groupList;
}

var FrameSet = {
	framePrefix: 'fra_',
	frameHeadPrefix: 'fra_head_',
	classBefore: 'classBefore',
	classAfter: 'classAfter',
	classCurrent: 'classCurrent',
	timeFlag: null,
	currentFrameHead: null,
	currentFrame: null,
	frames: new Array(),
	eventType: 'mouse',
	linkageEvent: function(){},
	initFlag: false,
	
	show: function(event){
		FrameSet.currentFrameHead = typeof(event) == 'string' ? event : Event.element(event).id == "" ? Event.element(event).parentNode.id : Event.element(event).id;
		FrameSet.timeFlag = setTimeout('FrameSet.showFrame()',200);
	},
	
	show2: function(event){
		FrameSet.currentFrameHead = typeof(event) == 'string' ? event : Event.element(event).id == "" ? Event.element(event).parentNode.id : Event.element(event).id;
		FrameSet.showFrame();
	},
	
	_show: function(frameHead){
		FrameSet.currentFrameHead = frameHead;
		FrameSet.showFrame();
	},
	
	showFrame: function(){
		var frameHead = FrameSet.currentFrameHead;
		var groupName = frameHead.substring(FrameSet.frameHeadPrefix.length,frameHead.lastIndexOf("_"));
		var serial = frameHead.substring(frameHead.lastIndexOf("_")+1,frameHead.length); 

		var frameGroup = FrameSet.getFrameGroup(groupName);

		var frameHeadStyle = FrameSet.classBefore;
		
		for (var i = 0; i < frameGroup.groupList.length; i++)
		{
			frame = $(FrameSet.framePrefix + groupName + '_' + frameGroup.groupList[i]);
			frameHead = $(FrameSet.frameHeadPrefix + groupName + '_' + frameGroup.groupList[i]);
			
			if (frameGroup.groupList[i] == serial)
			{
				frame.style.display = 'block';
				frameHead.className = FrameSet.classCurrent;
				frameHeadStyle = FrameSet.classAfter;
				FrameSet.currentFrame = frame;
			}
			else
			{
				frame.style.display = 'none';
				frameHead.className = frameHeadStyle;
			}
		}
		FrameSet.linkageEvent(serial);
	},
	
	timeClear: function(){
		window.clearTimeout(FrameSet.timeFlag);
	},
	
	getFrameGroup: function(groupName){
		var frameGroup = new Object();
		
		for (var i = 0; i < FrameSet.frames.length; i++)
		{
			frameGroup = FrameSet.frames[i];
			if (frameGroup.groupName == groupName) return frameGroup;
		}
	},
	
	init: function(){
		if (FrameSet.initFlag == false)
		{
			var frameIds = new Array();
			var frameSerial,frameName,frameHead;
			var frameHeads = document.getElementsByClassName("frame");
			for (var i = 0; i < frameHeads.length; i++)
			{
				var groupList = new Array();
				for(var j=0; j<frameHeads[i].childNodes.length; j++)
				{
					if (frameHeads[i].childNodes[j].nodeType == 1)
					{
						frameIds = frameHeads[i].childNodes[j].id.split("_");
						framePrefix = frameIds.shift();
						if (framePrefix + "_" == FrameSet.framePrefix)
						{
							frameSerial = frameIds.pop();
							frameName = frameIds.length>1 ? frameIds.join("_") : frameIds;
							frameHead = $(FrameSet.frameHeadPrefix + frameName + '_' + frameSerial);
							switch (FrameSet.eventType)
							{
								case 'none':
									break;
								case 'click':
									Event.observe(frameHead,'click',FrameSet.show2,false);
									break;
								default:
									Event.observe(frameHead,'mouseover',FrameSet.show,false);
									Event.observe(frameHead,'mouseout',FrameSet.timeClear,false);
							}
							groupList.push(frameSerial);
						}
					}
				}
				var frameGroup = new FrameGroup(frameName,groupList);
				FrameSet.frames.push(frameGroup);
				var firstFrameHead = FrameSet.frameHeadPrefix + frameName + '_' + groupList.first();
				FrameSet._show(firstFrameHead);
			}
			FrameSet.initFlag = true;
		}
	}
	
}
//通用标签切换脚本，更新日期：06-12-20，结束

//Cookies操作脚本，更新日期：06-12-20，开始
var Cookies={
   Decode:function(str) 
   { 
　     var strArr; 
　     var strRtn=""; 
       if( str != null && str.indexOf("a")>1)
       {
　           strArr=str.split("a"); 

　           for (var i=strArr.length-1;i>=0;i--) 
             {
　               strRtn+=String.fromCharCode(eval(strArr[i])); 
             }
　            return strRtn;
        }
        return null;
    } ,
	Code:function(str) 
    { 
　      var strRtn=""; 
　      for (var i=str.length-1;i>=0;i--) 
　      { 
　　         strRtn+=str.charCodeAt(i); 
　　         if (i) strRtn+="a"; 
　      } 
　      return strRtn; 
     } , 
	Get:function(name)   
    {   
        var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
        if(arr == document.cookie.match(reg))
        {
            return unescape(arr[2]);
        }
        else 
        {
	        return null;
	    }
     },
    Set:function(name, value, expires, path, domain)
	{
        var   exp     =   new   Date();
        exp.setTime(exp.getTime() + expires*24*60*60*1000); 
		document.cookie = name + "=" + escape (value) +
        ((expires) ? "; expires=" + exp.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "");
    },
    Del:function(cookiesname)   
    {   
		 var exp = new Date();
         exp.setTime(exp.getTime() - 1);
		 var cval=this.Get(cookiesname);
         if(cval!=null) document.cookie=cookiesname +"="+cval+";expires="+exp.toGMTString();
    }  
}
//Cookies操作脚本，更新日期：06-12-20，结束

//Email操作脚本，更新日期：07-04-23，开始
var Email = {
	domain: 'iresearch.com.cn',
	show:function(name){
		location.href='mailto:' + name + '@' + this.domain;
	},
	check:function(add){
		re = /^([\.\w-]){1,}@([\w-]){1,}(\.([\w]){2,4}){1,2}$/;
		if (!re.test(add)){
			alert("E-Mail地址填写错误！");
			return false;
		}
		return true;
	}
}
//Email操作脚本，更新日期：07-04-23，结束

//QQ操作脚本，更新日期：07-04-23，开始
var QQ = {
	show:function(id){
		document.write('<a target=blank href=http://wpa.qq.com/msgrd?Uin=' + id + '><img SRC="/images/qq.gif" alt="\\(^_^)/" border="0" align="absmiddle"></a>');
	}
}
//QQ操作脚本，更新日期：07-04-23，结束

//添加到收藏夹，兼容IE、FF，更新日期：07-08-23，开始
function addBookmark(title,url) {
	if(window.sidebar){ 
		window.sidebar.addPanel(title,url,""); 
	}else if( document.all ) {
		window.external.AddFavorite(url,title);
	}else if( window.opera && window.print ) {
		return true;
	}
}
//添加到收藏夹，兼容IE、FF，更新日期：07-08-23，结束

//datediff函数扩充，更新日期：07-10-10，开始
function dateDiff( interval, date1, date2 ) {
	var diff = 0;
	var ms1 = Date.parse(date1) ;
    var ms2 = Date.parse(date2) ;
    if ( isNaN (ms1) || isNaN (ms2) ) {
        return null ;
    }
    if ( typeof interval.charAt(0) == 'undefined' ) {
        return null ;
    }
    var ms = ms2 - ms1 ;
    switch (interval.charAt(0).toLowerCase())
    {
        case 'd':
            diff = parseInt(ms / 86400000) ;
            break ;
        case 'h':
            diff = parseInt(ms / 3600000 ) ;
            break ;
        case 'm':
            diff = parseInt(ms / 60000 ) ;
            break ;
        case 's':
            diff = parseInt(ms / 1000 ) ;
            break ;
        default:
			return null ;
    }
    return diff;
}
//datediff函数扩充，更新日期：07-10-10，结束

//MSN操作脚本，更新日期：07-04-23，开始
var MSN = {
	show:function(id){
		document.write('<a href=msnim:chat?contact=' + id + '><img SRC="/images/msn.gif" alt="\\(^_^)/" border="0" align="absmiddle"></a>');
	}
}
//MSN操作脚本，更新日期：07-04-23，结束

//批量添加样式脚本，更新日期：08-02-13，开始
function setStyle(obj,css){
	if( arguments.length == 1 ){
		var css = obj;
		var obj = this;
	}
	for(var c in css){
		obj.style[c] = css[c];
	}
}
//批量添加样式脚本，更新日期：08-02-13，结束

//滚动脚本，更新日期：08-02-14，开始
var wDivRoll = {
	_container : 'divroll',
	_obj_containers : null,
	_tmp_count: new Array(),
	
	init : function(){
		//遍历滚动容器
		wDivRoll._obj_containers = document.getElementsByClassName(wDivRoll._container);
		for (var i = 0; i < wDivRoll._obj_containers.length; i++){
			var container = wDivRoll._obj_containers[i];
			var height = container.scrollHeight;
			var width = container.scrollWidth;
			//设置容器为隐藏滚动条
			setStyle(container,{overflow:"hidden"});
			//读取滚动参数并设置容器
			eval( "var args = {" + $(container.id + "_arg").value + "}");
			//容器宽度，单位：像素，参数缩写w
			args["w"] != 0 ? setStyle(container,{width:( (width/args["w"]-1) + "px" )}) : null;
			//容器高度，单位：像素，参数缩写h
			args["h"] != 0 ? setStyle(container,{height:( (height/args["h"]-1) + "px" )}) : null;
			//滚动间隔，单位：秒，参数缩写i
			var arg_interval = args["i"] != 0 ? args["i"] : 5;
			//滚动间距，取倒数，单位：无，参数缩写s
			var arg_space  = args["s"] != 0 ? Math.round(height/args["s"]) : Math.round(height/10);
			//克隆容器内容
			var oCloneNode = container.cloneNode(true);
			container.appendChild(oCloneNode);
			//开始滚动
			container.scrollTop = 0;
			window.setInterval( "wDivRoll._roll(\"" + i + "\"," + height + "," + arg_space + "," + arg_interval + ")",2);
			//滚动计数器初始化
			wDivRoll._tmp_count[i] = -1;
		}
	},
	
	_roll : function(i,height,space,interval){
		wDivRoll._tmp_count[i]++;
		if (wDivRoll._tmp_count[i] == -1 || wDivRoll._tmp_count[i] > space){
			if (wDivRoll._tmp_count[i] >= (space + (interval*100))){ wDivRoll._tmp_count[i] = 0}
		}else{
			wDivRoll._obj_containers[i].scrollTop ++ ;
		}
		if (wDivRoll._obj_containers[i].scrollTop >= height){wDivRoll._obj_containers[i].scrollTop -= height;}
	}
}
//滚动脚本，更新日期：08-02-14，结束

//精粹操作脚本，更新日期：08-03-20，开始
var Essence = {
	Download:function(name){
		window.open(name + '.zip');
	}
}
//精粹操作脚本，更新日期：08-08-20，结束

function Year(){
	var d = new Date();
	return d.getYear();
}

//下拉菜单脚本，更新日期：08-07-25，开始
function getPosition(obj) {
	var objLeft = obj.offsetLeft;
	var objTop = obj.offsetTop;
	while (obj = obj.offsetParent) {
		objLeft += obj.offsetLeft;
		objTop += obj.offsetTop;
	}
	return([objLeft,objTop]);
}


var pdMenu = {
	_first : null,
	_second : null,
	_hide : true,
	_iTimerID : 0,
	
	show : function(first,second){
		if (pdMenu._iTimerID > 0 && second == pdMenu._second.id){
			pdMenu.hold();
		}else{
			if (pdMenu._second != null && second != pdMenu._second.id){
				pdMenu.hold();
				pdMenu._hide();
			}
			var xy = getPosition(first.childNodes[0]);
			var pd = $(second);
			var dw = document.documentElement.scrollWidth;
			var bw = document.body.scrollWidth;
			var h = first.childNodes[0].offsetHeight;
			setStyle(first.childNodes[0],{position:'relative',zIndex:1000});
			if (isIE){
				setStyle(pd,{left:(xy[0] + Math.ceil((dw-bw)/2) + 1 + 'px'),top:(xy[1] + h - 1 + 'px'),zIndex:999,visibility:'visible'});
			}else{
				setStyle(pd,{left:(xy[0] + Math.ceil((dw-bw)/2) + 'px'),top:(xy[1] + h - 1 + 'px'),zIndex:999,visibility:'visible'});
			}
			pdMenu._first = first;
			pdMenu._second = pd;
		}
	},
	
	hide : function(){
		if (pdMenu._iTimerID == 0) pdMenu._iTimerID = setTimeout(pdMenu._hide,100);
	},
	
	_hide : function(){
		setStyle(pdMenu._first.childNodes[0],{position:'static',zIndex:998})
		setStyle(pdMenu._second,{visibility:'hidden'})
		pdMenu._iTimerID = 0;
	},
	
	hold : function(){
		if (pdMenu._iTimerID > 0){
			clearTimeout(pdMenu._iTimerID);	
			pdMenu._iTimerID = 0;
		}
	}
}
//下拉菜单脚本，更新日期：08-07-25，结束

