﻿// JScript 文件

function CheckAll(o,s)
         {
             var chkother= document.getElementsByTagName("input");
             for (var i=0;i<chkother.length;i++)
            {
                 if( chkother[i].type=='checkbox')
                 {
                     if(chkother[i].id.indexOf(s)>-1)
                    {                        
                         chkother[i].checked=o.checked;                         
                     }
                 }
             }
         }

function getCtrolClientElement(serverID)
{
    var findE = document.getElementsByTagName("input");
             for (var i=0;i<findE.length;i++)
            {
                 if(findE[i].id.indexOf(serverID)>-1)
                 {                        
                     return  findE[i];                   
                 }
                 
             }
}

String.prototype.trim= function() 
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

	//选择日期
function fPopUpCalendarDlg(ctrlobj)
{
	showx=event.screenX;
	showy=event.screenY;
	newWINwidth = 210 + 4 + 18;
	retval = window.showModalDialog("/calendar.htm?x="+Math.random(), "calendar", "dialogWidth:210px; dialogHeight:260px; dialogLeft:"+showx+"px; dialogTop:"+showy+"px; status:no; directories:no;scrollbars:no;Resizable=no; "  );
	//retval.body.bgColor="#E7F3FF";
	if( retval != null )
	{		
		ctrlobj.value = retval;
	}
}



function ReplaceTxtSpecialChar(o)
{
    o.value = o.value.replace(/</g,"&lt;").replace(/>/g,"&gt;");
}

//地区级联菜单使用部分
function CGradeMenuItem(itemID, itemText, itemValue, parentID)
{
	this.itemID = itemID;
	this.itemText = itemText;
	this.itemValue = itemValue;
	this.parentID = parentID;
}

function CGradeMenu(objStr, targetStr)
{
	this.objStr = objStr;
	this.targetStr = targetStr;
	this.target = document.getElementById(this.targetStr);
	this.direction = "h";
	this.groupSize = 1;
	this.itemArr = new Array();
	this.AppendItem = CGradeMenu_AppendItem;
	this.Create = CGradeMenu_Create;
	this.BuildGroup = CGradeMenu_BuildGroup;
	this.GetGroupCnt = CGradeMenu_GetGroupCnt;
	this.GetGroup = CGradeMenu_GetGroup;
	this.GetItemIdByItemValue = CGradeMenu_GetItemIdByItemValue;	
}


function CGradeMenu_AppendItem(itemID, itemText, itemValue, parentID)
{
	this.itemArr[this.itemArr.length] = new CGradeMenuItem(itemID, itemText, itemValue, parentID);
}


function CGradeMenu_Create()
{
	var selectID = (arguments.length<1)?"0":arguments[0];
	this.target.innerHTML = "";
	this.BuildGroup(0, selectID);
}
//此方法已经改进，var gradeArea5 = CreateAreaMenu2("gradeArea5", "board5");gradeArea5.Create('1102'); 
//
function CGradeMenu_BuildGroup(groupIndex, selectID)
{
	while (this.target.childNodes.length > groupIndex)
	{
		this.target.removeChild(this.target.lastChild);
	}
	var itemIndexArr = new Array();
	var parentID = "0";
	if(groupIndex>0)
	{
	    parentID = selectID.substring(0,groupIndex*2);
	}
	var i = 0;
	for (i=0; i<this.itemArr.length; i++)
	{
		if (this.itemArr[i].parentID == parentID)
		{
			itemIndexArr[itemIndexArr.length] = i;
		}
	}
	if (itemIndexArr.length > 0)
	{
		var board = this.target.appendChild(document.createElement((this.direction!="v")?"span":"div"));
		var e = board.appendChild(document.createElement("select"));
		e.size = this.groupSize;
		e.id = this.objStr + "_item_" + groupIndex;
		e.name = e.id;
		var eventStr = this.objStr + ".BuildGroup(" + (groupIndex+1) + ", " + this.objStr + ".GetItemIdByItemValue(document.getElementById('" + e.id + "').value));";
		if (window.attachEvent)
		{
			e.attachEvent("onchange", function(){eval(eventStr)});
		}
		else
		{
			e.setAttribute("onchange", "javascript:" + eventStr);
		}
		for (i=0; i<itemIndexArr.length; i++)
		{
			e.options[e.options.length] = new Option(this.itemArr[itemIndexArr[i]].itemText, this.itemArr[itemIndexArr[i]].itemValue);
		}
		if(selectID.length>=(groupIndex+1)*2)
		{
		    var j = 0;
		    for(j=0;j<e.options.length;j++)
		    {
		        if(e.options[j].value==selectID.substring(0,(groupIndex+1)*2))
                {
                     e.options[j].selected=true;
                     break;
                }
		    }
		    
		    this.BuildGroup(groupIndex+1, selectID);		
		}
		else
			e.options.selectedIndex = 0;
	}
}

function CGradeMenu_GetGroupCnt()
{
	return this.target.childNodes.length;
}

function CGradeMenu_GetGroup(groupIndex)
{
	return this.target.childNodes[groupIndex].childNodes[0];
}

function CGradeMenu_GetItemIdByItemValue(s)
{
    for (i=0; i<this.itemArr.length; i++)
    {
        if(this.itemArr[i].itemValue==s)
        {
            return this.itemArr[i].itemID;
        }
    }
}


////////Ajax使用部分
var GO = function(elemId)
{
	return document.getElementById(elemId);
}

//在指定的元素上显示返回内容
function ajax_view(url,method,param,div_id)
{
	xmlHttp = get_xmlHttp();
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			GO(div_id).innerHTML =  xmlHttp.responseText ;
		}
	}
	method = method.toUpperCase();
	if(method == 'GET')
	{
	    url = url + '?' + param;
	    xmlHttp.open(method,url,true);
		xmlHttp.send(null);
	}
	else
	{
	    xmlHttp.open(method,url,true);
	    xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		xmlHttp.send(param);
	}
}

function ajax_callmyfunction(url,method,param,myCallFunction)
{
    xmlHttp = get_xmlHttp();
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			myCallFunction(xmlHttp.responseText) ;
		}
	}
	method = method.toUpperCase();
	if(method == 'GET')
	{
	    url = url + '?' + param;
	    xmlHttp.open(method,url,true);
		xmlHttp.send(null);
	}
	else
	{
	    xmlHttp.open(method,url,true);
	    xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		xmlHttp.send(param);
	}
}

function get_xmlHttp()
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari    
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	return xmlHttp;
}

function get_form_elements(form_id)
{
    var form = GO(form_id);
	str = '';
	if(form)
	{
	    for(i=0;i<form.elements.length;i++)
	    {
		    c = form.elements[i];
		    type = c.type ;
		    if((type == 'text' || type == 'password' || type == 'checkbox' || type == 'radio' || type == 'hidden' || type == 'textarea' || type == 'select-one') && c.value != '')
		    {
			    if(type == 'radio' || type == 'checkbox')
			    {
				    if(c.checked == true)
				    {
					    str += c.id + '=1&';
				    }
			    }
			    else
			    {
					    str += c.id + '=' + c.value + '&';
			    }
		    }
	    }
	}
	str = encodeURI(str.substring(0, str.length - 1));
	return str;
}


///////////判断关键字密度
function GetDensity(kw,pageWords,pageWordsCount)
{
    var words=pageWords;
    words=words.replace(new RegExp(kw, "gi") ,"");
    return (pageWords.length-words.length)*100/pageWordsCount
}

function IsKeywordsDensityOk(keywords,pageWords,pageWordsCount)
{                        
    var ok = true;
    if(keywords==null || keywords.length<1)
    {
        ok = window.confirm("你没有添加关键字，添加关键字能为你的添加的内容得到更好的搜索排名，确定要提交吗？");
    }
    else
    {
        var arrayOfKw = keywords.split(' ');
        var density;
        var message="";
        for(var i = 0;i < arrayOfKw.length;i++)
        {
            density = GetDensity(arrayOfKw[i],pageWords,pageWordsCount)
            if(density > 8 || density < 2)
            {
                ok = false;
            }
            message += "关键字\"" + arrayOfKw[i] + "\"密度：" + density + "%\n";
        }
        if(ok == false)
        {
            ok = window.confirm("关键字密度不在建议的2％到8％之间，\n你输入的各个关键字密度为:\n" + message + "\n确定要提交吗？");
        }
    }
    return ok;
}
//格式化图片，使图片大小在不超过width*height
function FormatImg(img,width,height)
{
    if (img.width * height > img.height * width){
        img.height = img.height * width / img.width
        img.width = width;    
    }
    else {
        img.width = img.width * width / img.height
        img.height = height;  
    }
}
function imageDetail(targetID, senderID, src, width, height, alt, show){        
    this.targetID = targetID;
    this.senderID = senderID;
    this.src = src;
    this.width = width;
    this.height = height;
    this.widthOrHeight = "";
    this.alt = alt;
    this.img = new Image();
    this.img.src = this.src;
    this.loaded = false;
    var myself = this;        
    this.img.onload = function(){
        if(!myself.loaded)
        {
            myself.widthOrHeight = "";
            if(myself.height < this.height || myself.width < this.width)
            {
                if(this.height / this.width > myself.height / myself.width)
                {
                    myself.widthOrHeight = "height";
                }          
                else if(this.height / this.width < myself.height / myself.width)
                {
                    myself.widthOrHeight = "width";
                }
            }
            if(show)
            {
                myself.showImage();
            }    
            myself.loaded = true;
        }       
    }
    this.showImage = function(){            
        var imgControl = document.getElementById(this.targetID);
        imgControl.removeAttribute("height");
        imgControl.removeAttribute("width");
        if(this.widthOrHeight != ""){
            eval("imgControl." + this.widthOrHeight + " = this." + this.widthOrHeight);
        }         
        imgControl.src = this.src;    
        imgControl.alt = this.alt;    
    }
    this.clearImage = function(){
        var imgControl = document.getElementById(this.targetID);
        imgControl.src = "";
        imgControl.alt = "";
        imgControl.width = this.width;
        imgControl.height = this.height;    
    }
}
function myImages(){
    this.imgCount = 0;
    this.imageDetails = new Array();
    this.addImage = function(targetID, senderID, src, width, height, alt, show){            
        this.imageDetails[this.imgCount] = new imageDetail(targetID, senderID, src, width, height, alt, show);
        return ++this.imgCount;
    }        
    this.getImageDetailByIndex = function(index){
        if(index >= 0 && index < this.imgCount){
            return this.imageDetails[index];
        }
        return null;
    }
    this.getImageDetailBySenderID = function(senderID){
        for(var i = 0; i<this.imgCount; i++){
            if(this.imageDetails[i].senderID == senderID){
                return this.imageDetails[i];
            }
        }
        return null;
    }
    this.showImage = function(s){
        var imageDetail;
        if(isNumber(s)){
            imageDetail = this.getImageDetailByIndex(s);                
        }
        else{
            imageDetail = this.getImageDetailBySenderID(s);  
        }
        if(imageDetail != null){
            imageDetail.showImage();
        }
    }
    this.clearImage = function(s){
        var imageDetail;
        if(isNumber(s)){
            imageDetail = this.getImageDetailByIndex(s);                
        }
        else{
            imageDetail = this.getImageDetailBySenderID(s);  
        }
        if(imageDetail != null){
            imageDetail.clearImage();
        }
    }
}
function isNumber(s){
    var re = /^\d+$/;
    return(re.exec(s));
}